Export API
This commit is contained in:
parent
24d4fad5cf
commit
83a57e7ada
2 changed files with 62 additions and 3 deletions
|
@ -233,7 +233,6 @@ a7: 你好
|
||||||
let docs_new = YamlLoader::load_from_str(&s).unwrap();
|
let docs_new = YamlLoader::load_from_str(&s).unwrap();
|
||||||
let doc_new = &docs_new[0];
|
let doc_new = &docs_new[0];
|
||||||
|
|
||||||
println!("{}", writer);
|
|
||||||
assert_eq!(doc, doc_new);
|
assert_eq!(doc, doc_new);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,66 @@ pub mod scanner;
|
||||||
pub mod parser;
|
pub mod parser;
|
||||||
pub mod emitter;
|
pub mod emitter;
|
||||||
|
|
||||||
#[test]
|
// reexport key APIs
|
||||||
fn it_works() {
|
pub use scanner::ScanError;
|
||||||
|
pub use parser::Event;
|
||||||
|
pub use yaml::{Yaml, YamlLoader};
|
||||||
|
pub use emitter::{YamlEmitter, EmitError};
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
#[test]
|
||||||
|
fn test_api() {
|
||||||
|
let s =
|
||||||
|
"
|
||||||
|
# from yaml-cpp example
|
||||||
|
- name: Ogre
|
||||||
|
position: [0, 5, 0]
|
||||||
|
powers:
|
||||||
|
- name: Club
|
||||||
|
damage: 10
|
||||||
|
- name: Fist
|
||||||
|
damage: 8
|
||||||
|
- name: Dragon
|
||||||
|
position: [1, 0, 10]
|
||||||
|
powers:
|
||||||
|
- name: Fire Breath
|
||||||
|
damage: 25
|
||||||
|
- name: Claws
|
||||||
|
damage: 15
|
||||||
|
- name: Wizard
|
||||||
|
position: [5, -3, 0]
|
||||||
|
powers:
|
||||||
|
- name: Acid Rain
|
||||||
|
damage: 50
|
||||||
|
- name: Staff
|
||||||
|
damage: 3
|
||||||
|
";
|
||||||
|
let docs = YamlLoader::load_from_str(s).unwrap();
|
||||||
|
let doc = &docs[0];
|
||||||
|
|
||||||
|
assert_eq!(doc[0]["name"].as_str().unwrap(), "Ogre");
|
||||||
|
|
||||||
|
let mut writer = String::new();
|
||||||
|
{
|
||||||
|
let mut emitter = YamlEmitter::new(&mut writer);
|
||||||
|
emitter.dump(doc).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
assert!(writer.len() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_fail() {
|
||||||
|
let s =
|
||||||
|
"
|
||||||
|
# syntax error
|
||||||
|
scalar
|
||||||
|
key: [1, 2]]
|
||||||
|
key1:a2
|
||||||
|
";
|
||||||
|
assert!(YamlLoader::load_from_str(s).is_err());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue