extern crate carta_schema;
use carta_schema::Nugget;
#[test]
fn basic_header_with_text_array() {
let schema_data = "
struct root {
header: Header
}
struct Header {
name: String
}
struct String {
len: int8,
value: [ascii; len],
}
";
let schema = carta_schema::compile_schema_file(schema_data).unwrap();
let bin_data = b"\x04abcd";
let nugget = carta_schema::apply_schema(&schema, bin_data);
assert_eq!(
nugget,
Nugget {
start: 0,
len: 5,
name: "root".to_string(),
value: None,
children: vec![
Nugget {
start: 0,
len: 5,
name: "header".to_string(),
value: None,
children: vec![
Nugget {
start: 0,
len: 5,
name: "name".to_string(),
value: None,
children: vec![
Nugget {
start: 0,
len: 1,
name: "len".to_string(),
value: Some("4".to_string()),
children: Vec::new(),
},
Nugget {
start: 1,
len: 4,
name: "value".to_string(),
value: Some("abcd".to_string()),
children: Vec::new(),
}
]
}
]
}
]
}
);
}