Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Systems can now have more than one label attached to them. * System labels no longer have to be unique in the stage. Code like this is now possible: ```rust SystemStage::parallel() .with_system(system_0.system().label("group one").label("first")) .with_system(system_1.system().label("group one").after("first")) .with_system(system_2.system().after("group one")) ``` I've opted to use only the system name in ambiguity reporting, which previously was only a fallback; this, obviously, is because labels aren't one-to-one with systems anymore. We could allow users to name systems to improve this; we'll then have to think about whether or not we want to allow using the name as a label (this would, effectively, introduce implicit labelling, not all implications of which are clear to me yet wrt many-to-many labels). Dependency cycle errors are reported using the system names and only the labels that form the cycle, with each system-system "edge" in the cycle represented as one or several labels. Slightly unrelated: `.before()` and `.after()` with a label not attached to any system no longer crashes, and logs a warning instead. This is necessary to, for example, allow plugins to specify execution order with systems of potentially missing other plugins.
- Loading branch information