[RFC] System name constants
- Dominant language
- No language data
- Stars
- 32
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
Hey, I had to write this out so that I don't forget it.
---
When a bundle adds a system to a dispatcher, it provides a name which is used in system dependency ordering. The system name is effectively API, as external systems that depend on that system specify it as a dependency.
While the number of systems is small, it isn't hard to maintain a few `&'static str`s. However when there are many systems, if I make a typo, or the name has changed, using `&str`s defers failure to application startup (runtime) instead of compile time. If we can use constants or a function that returns a derivable system name, it would decrease the maintenance cost for larger applications.
Things to consider:
* `System`s are generally not public outside of a crate, so we'd have to expose the name some other way.
* What about Systems with generic parameters, such as `AnimationControlSystem`, where the type parameters are defined by the consumer / application code
Possible useful crates:
* [`named_type`](https://github.com/cjhowe7/named_type/), but would depend on https://github.com/cjhowe7/named_type/issues/5
* [`typename`](https://crates.io/crates/typename)
Alternatives:
* Do nothing — perhaps the maintenance cost isn't big enough for this effort to be undertaken.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.