amethyst / specs

Specs - Parallel ECS

Home Page:https://amethyst.github.io/specs/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

All-inclusive `derive` feature

vorner opened this issue · comments

Description

Add another derive flag that enables all the available *-derive flags.

Motivation

I've spent non-trivial time searching why #[derive(SystemData)] does not work for me when I've already included the specs-derive feature. It is „hidden“ in shred-derive ‒ but, using shred is somewhat internal thing of specs so this is non-obvious. The documentation (book) doesn't really speak about specific features much either.

Including it as derive (same as serde and others), it is much easier to guess and it would allow all derives at once, saving such surprise.

Drawbacks

  • Is it a breaking change?

No

  • Can it impact performance, learnability, etc?

This might have slight impact on first compilation time to compile additional derive crate (eg. if I need just one and not the other). But as they both share the heavy dependencies (syntax, quote), it should be small. It's build-time only, no impact for runtime.

Users would still be able to enable only one of the originals if it mattered to them.

I have the actual change ready, I'd be willing to go through the documentation and mention the new flag.

Heya, that sounds good.

I'm about to do a release, but am happy to do another one straight after your change is merged ✌️.