use super::*; use crate::yaml_decode::*; use serde_derive::Deserialize; use yaml_rust::YamlLoader; mod ssz_generic; mod ssz_static; pub use ssz_generic::*; pub use ssz_static::*; #[derive(Debug, Deserialize)] pub struct Cases { pub test_cases: Vec, } impl YamlDecode for Cases { /// Decodes a YAML list of test cases fn yaml_decode(yaml: &String) -> Result { let doc = &YamlLoader::load_from_str(yaml).unwrap()[0]; let mut test_cases: Vec = vec![]; let mut i = 0; loop { if doc[i].is_badvalue() { break; } else { test_cases.push(T::yaml_decode(&yaml_to_string(&doc[i])).unwrap()) } i += 1; } Ok(Self { test_cases }) } }