use crate::tree::Tree;
impl Tree {
pub fn from_toml(toml_str: &str) -> Result<Self, toml::de::Error> {
toml::from_str(toml_str)
}
pub fn to_toml(&self) -> Result<String, toml::ser::Error> {
toml::to_string(self)
}
pub fn to_toml_pretty(&self) -> Result<String, toml::ser::Error> {
toml::to_string_pretty(self)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_toml_roundtrip() {
let tree = Tree::Node(
"root".to_string(),
vec![Tree::Leaf(vec!["item".to_string()])],
);
let toml = tree.to_toml().unwrap();
let deserialized = Tree::from_toml(&toml).unwrap();
assert_eq!(tree, deserialized);
}
}