pub fn nest(key: &str, value: Value) -> Value
Expand description

Given a key path key of the form a.b.c, creates nested dictionaries for for every path component delimited by . in the path string (3 in a.b.c), each a parent of the next, and the leaf mapping to value (a -> b -> c -> value).

If key is empty, simply returns value. Otherwise, Value will be a dictionary with the nested mappings.


use figment::{util::nest, value::Value};

let leaf = Value::from("I'm a leaf!");

let dict = nest("tea", leaf.clone());
assert_eq!(dict.find_ref("tea").unwrap(), &leaf);

let dict = nest("tea.leaf", leaf.clone());
let tea = dict.find_ref("tea").unwrap();
let found_leaf = tea.find_ref("leaf").unwrap();
assert_eq!(found_leaf, &leaf);
assert_eq!(dict.find_ref("tea.leaf").unwrap(), &leaf);

let just_leaf = nest("", leaf.clone());
assert_eq!(just_leaf, leaf);