fn toml_merge()

in ingester/src/main.rs [73:97]


fn toml_merge(target: &mut toml::Value, from: toml::Value) {
    use toml::Value::*;
    if from.same_type(target) {
        match from {
            Array(a) => {
                target.as_array_mut().unwrap().extend(a);
                return;
            }
            Table(t) => {
                let target = target.as_table_mut().unwrap();
                for (k, v) in t {
                    match target.entry(k) {
                        toml::map::Entry::Vacant(e) => {
                            e.insert(v);
                        }
                        toml::map::Entry::Occupied(e) => toml_merge(e.into_mut(), v),
                    }
                }
                return;
            }
            _ => (),
        }
    }
    *target = from;
}