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 doc_new = &docs_new[0];
|
||||
|
||||
println!("{}", writer);
|
||||
assert_eq!(doc, doc_new);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,66 @@ pub mod scanner;
|
|||
pub mod parser;
|
||||
pub mod emitter;
|
||||
|
||||
// reexport key APIs
|
||||
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 it_works() {
|
||||
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