use crate::tree::Tree;
impl Tree {
pub fn from_yaml(yaml: &str) -> Result<Self, serde_yaml::Error> {
serde_yaml::from_str(yaml)
}
pub fn to_yaml(&self) -> Result<String, serde_yaml::Error> {
serde_yaml::to_string(self)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_yaml_roundtrip() {
let tree = Tree::Node(
"root".to_string(),
vec![Tree::Leaf(vec!["item".to_string()])],
);
let yaml = tree.to_yaml().unwrap();
let deserialized = Tree::from_yaml(&yaml).unwrap();
assert_eq!(tree, deserialized);
}
}