improve contribution to add examples, fix some clippy warns

This commit is contained in:
Marc-Antoine Arnaud
2021-02-08 14:10:08 +01:00
parent a65fa84f75
commit 6492efcfdc
12 changed files with 320 additions and 281 deletions

View File

@@ -1,9 +1,7 @@
// related to issue https://github.com/media-io/yaserde/issues/11
use std::io::Read;
use yaserde::YaDeserialize;
#[derive(YaDeserialize, Default, Debug, PartialEq)]
#[yaserde(root="DOMSymbolItem")]
#[yaserde(root = "DOMSymbolItem")]
struct Level {
#[yaserde(attribute)]
last_modified: u64,
@@ -15,7 +13,7 @@ struct Level {
#[derive(YaDeserialize, Default, Debug, PartialEq)]
struct Timeline {
#[yaserde(rename = "DOMTimeline")]
timeline: DOMTimeline
timeline: DOMTimeline,
}
#[derive(YaDeserialize, Default, Debug, PartialEq)]
@@ -26,13 +24,13 @@ struct DOMTimeline {
current_frame: u64,
#[yaserde(attribute)]
guides: u64,
layers: Layers
layers: Layers,
}
#[derive(YaDeserialize, Default, Debug, PartialEq)]
struct Layers {
#[yaserde(rename = "DOMLayer")]
dom_layer: Vec<DOMLayer>
dom_layer: Vec<DOMLayer>,
}
#[derive(YaDeserialize, Default, Debug, PartialEq)]
@@ -40,22 +38,19 @@ struct DOMLayer {
#[yaserde(attribute, rename = "name")]
named: String,
#[yaserde(attribute)]
name2: String
name2: String,
}
#[test]
fn parsing_ln_dom() {
use std::fs::File;
use std::fs;
use yaserde::de::from_str;
let filename = "tests/data/ln-dom.xml";
let mut f = File::open(filename).expect("file not found");
let mut contents = String::new();
f.read_to_string(&mut contents)
.expect("something went wrong reading the file");
let content = fs::read_to_string(filename).expect("something went wrong reading the file");
let loaded: Level = from_str(&contents).unwrap();
let loaded: Level = from_str(&content).unwrap();
println!("{:?}", loaded);
let reference = Level {
@@ -70,16 +65,16 @@ fn parsing_ln_dom() {
dom_layer: vec![
DOMLayer {
named: "Layer 2".to_string(),
name2: "Lalayer 2".to_string()
name2: "Lalayer 2".to_string(),
},
DOMLayer {
named: "Layer 1".to_string(),
name2: "Lalayer 1".to_string()
}
]
}
}
}
name2: "Lalayer 1".to_string(),
},
],
},
},
},
};
assert_eq!(loaded, reference);