ec4rs 1.2.0

EditorConfig For Rust
Documentation
use crate::property as prop;

pub fn add_fallbacks(props: &mut crate::Properties, legacy: bool) {
    let val = props.get_raw::<prop::IndentSize>();
    if let Some(value) = val.into_option() {
        if let Ok(prop::IndentSize::UseTabWidth) = val.parse::<prop::IndentSize>() {
            let value = props
                .get_raw::<prop::TabWidth>()
                .into_option()
                .unwrap_or("tab")
                .to_owned();
            props.insert_raw::<prop::IndentSize, _>(value);
        } else {
            let value = value.to_owned();
            let _ = props.try_insert_raw::<prop::TabWidth, _>(value);
        }
    } else if let Some(value) = props
        .get_raw::<prop::TabWidth>()
        .filter_unset()
        .into_option()
    {
        let _ = props.try_insert_raw::<prop::IndentSize, _>(value.to_owned());
    }
    if !legacy {
        if let Ok(prop::IndentStyle::Tabs) = props.get::<prop::IndentStyle>() {
            let _ = props.try_insert(prop::IndentSize::UseTabWidth);
        }
    }
}