use serde::{Deserialize, Serialize};
use serde_yml::with::singleton_map_recursive;
pub(crate) fn main() {
println!("\n❯ Executing examples/with/singleton_map_recursive.rs");
#[derive(Serialize, Deserialize, PartialEq, Debug)]
enum SingleVariantEnum {
Variant(String),
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
enum NestedEnum {
Variant1(String),
Variant2(SingleVariantEnum),
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct NestedStruct {
#[serde(with = "singleton_map_recursive")]
field: NestedEnum,
}
let input = NestedStruct {
field: NestedEnum::Variant2(SingleVariantEnum::Variant(
"nested".to_string(),
)),
};
let yaml = serde_yml::to_string(&input).unwrap();
println!("\n✅ Serialized YAML:\n{}", yaml);
let output: NestedStruct = serde_yml::from_str(&yaml).unwrap();
println!("\n✅ Deserialized YAML:\n{:#?}", output);
assert_eq!(input, output);
}