nondestructive
Nondestructive editing over various file formats.
This project is as of yet, incomplete!
Examples
use nondestructive::yaml;
let mut doc = yaml::from_bytes(r#"
number1: 10
number2: 20
mapping:
inner: 400
string3: "I am a quoted string!"
"#)?;
let mut root = doc.root_mut();
let mut root = root.as_mapping_mut().ok_or("missing root mapping")?;
root.get_mut("number2").ok_or("missing inner mapping")?.set_u32(30);
root.get_mut("string3").ok_or("missing inner mapping")?.set_string("i-am-a-bare-string");
assert_eq! {
doc.to_string(),
r#"
number1: 10
number2: 30
mapping:
inner: 400
string3: i-am-a-bare-string
"#
};