made_core/entities/ceremony_instance/
children.rs1use crate::entities::CeremonyInstance;
2use crate::value_objects::{ChildGroupId, ChildSpawnCoordinates, ChildrenCompletedCondition};
3
4impl CeremonyInstance {
5 #[must_use]
6 pub fn children_completed_guard_is_satisfied(
7 &self,
8 condition: &ChildrenCompletedCondition,
9 ) -> bool {
10 let Some(record) = self.step_record(condition.step_id()) else {
11 return false;
12 };
13 let coordinates = ChildSpawnCoordinates::new(
14 condition.step_id().clone(),
15 self.current_state_visit,
16 self.current_state_iteration,
17 record.iteration(),
18 );
19 let group_id = ChildGroupId::derive(&self.id, &coordinates);
20 self.child_groups.get(&group_id).is_some_and(|group| {
21 group.plan().coordinates() == &coordinates
22 && condition
23 .join()
24 .is_satisfied(group.completions().len(), group.plan().children().len())
25 })
26 }
27}