smart-config-commands 0.4.0-pre.4

Command-line extensions for `smart-config` library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use smart_config::{ConfigRef, metadata::ConfigVariant};

use crate::ParamRef;

pub(crate) fn collect_conditions(mut config: ConfigRef<'_>) -> Vec<(ParamRef<'_>, &ConfigVariant)> {
    let mut conditions = vec![];
    while let Some((parent_ref, this_ref)) = config.parent_link() {
        if let Some(variant) = this_ref.tag_variant {
            conditions.push((ParamRef::for_tag(parent_ref), variant));
        }
        config = parent_ref;
    }
    conditions
}