]>
git.proxmox.com Git - rustc.git/blob - vendor/yaml-rust-0.3.5/src/lib.rs
1 // Copyright 2015, Yuheng Chen. See the LICENSE file at the top-level
2 // directory of this distribution.
4 //! YAML 1.2 implementation in pure Rust.
8 //! This crate is [on github](https://github.com/chyh1990/yaml-rust) and can be
9 //! used by adding `yaml-rust` to the dependencies in your project's `Cargo.toml`.
12 //! [dependencies.yaml-rust]
13 //! git = "https://github.com/chyh1990/yaml-rust.git"
16 //! And this in your crate root:
19 //! extern crate yaml_rust;
22 //! Parse a string into `Vec<Yaml>` and then serialize it as a YAML string.
27 //! use yaml_rust::{YamlLoader, YamlEmitter};
29 //! let docs = YamlLoader::load_from_str("[1, 2, 3]").unwrap();
30 //! let doc = &docs[0]; // select the first document
31 //! assert_eq!(doc[0].as_i64().unwrap(), 1); // access elements by index
33 //! let mut out_str = String::new();
34 //! let mut emitter = YamlEmitter::new(&mut out_str);
35 //! emitter.dump(doc).unwrap(); // dump the YAML object to a String
39 #![cfg_attr(feature="clippy", feature(plugin))]
40 #![cfg_attr(feature="clippy", plugin(clippy))]
41 #![cfg_attr(feature="clippy", deny(clippy))]
42 #![cfg_attr(feature="clippy", warn(cyclomatic_complexity))]
43 #![cfg_attr(feature="clippy", allow(match_same_arms))]
45 #[cfg(feature = "preserve_order")]
46 extern crate linked_hash_map
;
54 pub use scanner
::ScanError
;
55 pub use parser
::Event
;
56 pub use yaml
::{Yaml, YamlLoader}
;
57 pub use emitter
::{YamlEmitter, EmitError}
;
67 # from yaml-cpp example
90 let docs
= YamlLoader
::load_from_str(s
).unwrap();
93 assert_eq
!(doc
[0]["name"].as_str().unwrap(), "Ogre");
95 let mut writer
= String
::new();
97 let mut emitter
= YamlEmitter
::new(&mut writer
);
98 emitter
.dump(doc
).unwrap();
101 assert
!(!writer
.is_empty());
104 fn try_fail(s
: &str) -> Result
<Vec
<Yaml
>, ScanError
> {
105 let t
= try
!(YamlLoader
::load_from_str(s
));
118 assert
!(YamlLoader
::load_from_str(s
).is_err());
119 assert
!(try_fail(s
).is_err());