1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// ---------------- [ File: character-traits-transformative-abilities/src/find_transform_descriptors_for.rs ] crate::ix!(); /// Returns every descriptor whose *core* domain equals **core** /// **and** whose nuanced attributes *superset* **required**. pub fn find_transform_descriptors_for( core: &CoreTransformDomain, required: &BTreeSet<NuancedTransformAttribute>, ) -> Vec<TransformativeAbilityDescriptor> { let descriptors: Vec<_> = TransformativeAbilityDescriptor::iter() .filter(|d| { let (c, a) = analyze_transformative_ability_descriptor(d); c == *core && required.is_subset(&a) }) .collect(); debug!( ?core, ?required, count = descriptors.len(), "resolved transformative descriptors by qualities" ); descriptors }