Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding
ScheduleGraph::contains_set
(bevyengine#16206)
# Objective The schedule graph can easily confirm whether a set is contained or not. This helps me in my personal project where I write an extension trait for `Schedule` and I want to configure a specific set in its methods. The set in question has a run condition though and I don't want to add that condition to the same schedule as many times as the trait methods are called. Since the non-pub set is unknown to the schedule until then, a `contains_set` is sufficient. It is probably trivial to add a method that returns an `Option<NodeId>` as well but as I personally don't need it I did not add that. If it is desired I can do so here though. It might be unneeded to have a `contains_set` then because one could check `is_some` on the returned id in that case. An argument against that is that future changes may be easier if only a `contains_set` needs to be ported. ## Solution Added `ScheduleGraph::contains_set`. ## Testing I put the below showcase code into a temporary unit test and it worked. If wanted I add it as a test too but I did not see that other more somewhat complicated methods have tests --- ## Showcase ```rs #[derive(ScheduleLabel, Debug, Default, Clone, Copy, PartialEq, Eq, Hash)] struct MySchedule; #[derive(SystemSet, Debug, Default, Clone, Copy, PartialEq, Eq, Hash)] struct MySet; let mut schedule = Schedule::new(MySchedule); assert_eq!(schedule.graph().contains_set(MySet), false); schedule.configure_sets(MySet); assert_eq!(schedule.graph().contains_set(MySet), true); ```
- Loading branch information