Crate libyaml

Crate libyaml 

Source
Expand description

High-level bindings for the LibYAML library.

§Reading YAML

To read a YAML stream, use Parser. This example counts the number of alias events in a stream.

let alias_count = Parser::new(reader)?.into_iter().filter(|e| {
    if let Ok(Event::Alias { .. }) = e { true } else { false }
}).count();

§Writing YAML

To write a YAML stream, use Emitter. This example writes a stream with a single document consisting of a single scalar.

let mut emitter = Emitter::new(writer)?;

emitter.emit(Event::StreamStart { encoding: None })?;
emitter.emit(Event::DocumentStart { implicit: true })?;
emitter.emit(Event::Scalar {
    anchor: None,
    tag: Some(tag::INT.to_string()),
    value: "42".to_string(),
    plain_implicit: false,
    quoted_implicit: false,
    style: None,
})?;
emitter.emit(Event::DocumentEnd { implicit: true })?;
emitter.emit(Event::StreamEnd)?;

Modules§

tag
Tags for YAML language-independent types.

Structs§

Emitter
Emitter.
EmitterBuilder
Builder for emitters.
EventError
Error returned from Event methods.
Parser
Parser.
ParserBuilder
Builder for parsers.
ParserIter
Iterator adapter for Parser.
TagDirective
Document tag directive.
VersionDirective
Document version directive.

Enums§

EmitterError
Error returned from Emitter methods.
Encoding
Stream encoding.
Event
Emitter or parser event.
LineBreak
Line break encoding.
MappingStyle
Mapping style.
ParserError
Error returned from Parser methods.
ScalarStyle
Scalar style.
SequenceStyle
Sequence style.