character-traits-transformative-abilities 0.1.0

A Rust crate providing a conceptual framework for defining and analyzing transformative abilities using complex attributes and domains.
Documentation
// ---------------- [ 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
}