Refactory YAML document loader

This commit is contained in:
Yuheng Chen 2015-05-27 02:50:51 +08:00
parent 89b9c6b1db
commit 616ebfa378
5 changed files with 291 additions and 377 deletions

View file

@ -1,5 +1,5 @@
use scanner::*; use scanner::*;
use yaml::*; // use yaml::*;
#[derive(Clone, Copy, PartialEq, Debug, Eq)] #[derive(Clone, Copy, PartialEq, Debug, Eq)]
pub enum State { pub enum State {
@ -99,129 +99,107 @@ impl<T: Iterator<Item=char>> Parser<T> {
self.states.push(state); self.states.push(state);
} }
pub fn parse(&mut self) -> ParseResult { fn parse<R: EventReceiver>(&mut self, recv: &mut R)
-> ParseResult {
if self.scanner.stream_ended() if self.scanner.stream_ended()
|| self.state == State::End { || self.state == State::End {
return Ok(Event::StreamEnd); return Ok(Event::StreamEnd);
} }
let ev = self.state_machine(); let ev = try!(self.state_machine());
println!("EV {:?}", ev); // println!("EV {:?}", ev);
ev recv.on_event(&ev);
Ok(ev)
} }
pub fn load(&mut self) -> Result<Yaml, ScanError> { pub fn load<R: EventReceiver>(&mut self, recv: &mut R, multi: bool)
-> Result<(), ScanError> {
if !self.scanner.stream_started() { if !self.scanner.stream_started() {
let ev = try!(self.parse()); let ev = try!(self.parse(recv));
assert_eq!(ev, Event::StreamStart); assert_eq!(ev, Event::StreamStart);
} }
if self.scanner.stream_ended() { if self.scanner.stream_ended() {
// XXX has parsed? // XXX has parsed?
return Ok(Yaml::Null); recv.on_event(&Event::StreamEnd);
return Ok(());
} }
let ev = try!(self.parse());
if ev == Event::StreamEnd {
return Ok(Yaml::Null);
}
self.load_document(&ev)
}
pub fn load_multidoc(&mut self) -> Result<Vec<Yaml>, ScanError> {
if !self.scanner.stream_started() {
let ev = try!(self.parse());
assert_eq!(ev, Event::StreamStart);
}
if self.scanner.stream_ended() {
// XXX has parsed?
return Ok(Vec::new());
}
let mut docs: Vec<Yaml> = Vec::new();
loop { loop {
let ev = try!(self.parse()); let ev = try!(self.parse(recv));
if ev == Event::StreamEnd { if ev == Event::StreamEnd {
return Ok(docs); recv.on_event(&Event::StreamEnd);
return Ok(());
}
try!(self.load_document(&ev, recv));
if !multi {
break;
} }
docs.push(try!(self.load_document(&ev)));
} }
unreachable!(); Ok(())
} }
fn load_document(&mut self, first_ev: &Event) -> Result<Yaml, ScanError> { fn load_document<R: EventReceiver>(&mut self, first_ev: &Event, recv: &mut R)
-> Result<(), ScanError> {
assert_eq!(first_ev, &Event::DocumentStart); assert_eq!(first_ev, &Event::DocumentStart);
let ev = try!(self.parse()); let ev = try!(self.parse(recv));
let doc = try!(self.load_node(&ev)); try!(self.load_node(&ev, recv));
// DOCUMENT-END is expected. // DOCUMENT-END is expected.
let ev = try!(self.parse()); let ev = try!(self.parse(recv));
assert_eq!(ev, Event::DocumentEnd); assert_eq!(ev, Event::DocumentEnd);
Ok(doc) Ok(())
} }
fn load_node(&mut self, first_ev: &Event) -> Result<Yaml, ScanError> { fn load_node<R: EventReceiver>(&mut self, first_ev: &Event, recv: &mut R)
-> Result<(), ScanError> {
match *first_ev { match *first_ev {
Event::Scalar(ref v, style) => { Event::Scalar(ref v, style) => {
// TODO scalar Ok(())
if style != TScalarStyle::Plain {
Ok(Yaml::String(v.clone()))
} else {
match v.as_ref() {
"~" => Ok(Yaml::Null),
"true" => Ok(Yaml::Boolean(true)),
"false" => Ok(Yaml::Boolean(false)),
// try parsing as f64
_ if v.parse::<f64>().is_ok() => Ok(Yaml::Number(v.clone())),
_ => Ok(Yaml::String(v.clone()))
}
}
}, },
Event::SequenceStart => { Event::SequenceStart => {
self.load_sequence(first_ev) self.load_sequence(first_ev, recv)
}, },
Event::MappingStart => { Event::MappingStart => {
self.load_mapping(first_ev) self.load_mapping(first_ev, recv)
}, },
// TODO more events // TODO more events
_ => { unreachable!(); } _ => { unreachable!(); }
} }
} }
fn load_mapping(&mut self, first_ev: &Event) -> Result<Yaml, ScanError> { fn load_mapping<R: EventReceiver>(&mut self, first_ev: &Event, recv: &mut R)
let mut ev = try!(self.parse()); -> Result<(), ScanError> {
let mut map = Hash::new(); let mut ev = try!(self.parse(recv));
while ev != Event::MappingEnd { while ev != Event::MappingEnd {
// key // key
let key = try!(self.load_node(&ev)); try!(self.load_node(&ev, recv));
// value // value
ev = try!(self.parse()); ev = try!(self.parse(recv));
let value = try!(self.load_node(&ev)); try!(self.load_node(&ev, recv));
map.insert(key, value);
// next event // next event
ev = try!(self.parse()); ev = try!(self.parse(recv));
} }
Ok(Yaml::Hash(map)) Ok(())
} }
fn load_sequence(&mut self, first_ev: &Event) -> Result<Yaml, ScanError> { fn load_sequence<R: EventReceiver>(&mut self, first_ev: &Event, recv: &mut R)
let mut ev = try!(self.parse()); -> Result<(), ScanError> {
let mut vec = Vec::new(); let mut ev = try!(self.parse(recv));
while ev != Event::SequenceEnd { while ev != Event::SequenceEnd {
let entry = try!(self.load_node(&ev)); let entry = try!(self.load_node(&ev, recv));
vec.push(entry);
// next event // next event
ev = try!(self.parse()); ev = try!(self.parse(recv));
} }
Ok(Yaml::Array(vec)) Ok(())
} }
fn state_machine(&mut self) -> ParseResult { fn state_machine(&mut self) -> ParseResult {
let next_tok = self.peek(); let next_tok = self.peek();
println!("cur_state {:?}, next tok: {:?}", self.state, next_tok); //println!("cur_state {:?}, next tok: {:?}", self.state, next_tok);
match self.state { match self.state {
State::StreamStart => self.stream_start(), State::StreamStart => self.stream_start(),
@ -526,43 +504,5 @@ impl<T: Iterator<Item=char>> Parser<T> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
#[test]
fn test_parser() {
let s: String = "
# comment
a0 bb: val
a1:
b1: 4
b2: d
a2: 4 # i'm comment
a3: [1, 2, 3]
a4:
- - a1
- a2
- 2
a5: 'single_quoted'
a6: \"double_quoted\"
a7:
".to_string();
let mut parser = Parser::new(s.chars());
let out = parser.load().unwrap();
assert_eq!(out["a7"].as_str().unwrap(), "你好");
}
#[test]
fn test_multi_doc() {
let s =
"
'a scalar'
---
'a scalar'
---
'a scalar'
";
let mut p = Parser::new(s.chars());
let out = p.load_multidoc().unwrap();
assert_eq!(out.len(), 3);
}
} }

View file

@ -620,7 +620,6 @@ impl<T: Iterator<Item=char>> Scanner<T> {
let start_mark = self.mark; let start_mark = self.mark;
while self.mark.col == indent && !is_z(self.ch()) { while self.mark.col == indent && !is_z(self.ch()) {
println!("--> {:?}", self.ch());
// We are at the beginning of a non-empty line. // We are at the beginning of a non-empty line.
trailing_blank = is_blank(self.ch()); trailing_blank = is_blank(self.ch());
if !literal && !leading_break.is_empty() if !literal && !leading_break.is_empty()
@ -640,7 +639,6 @@ impl<T: Iterator<Item=char>> Scanner<T> {
leading_blank = is_blank(self.ch()); leading_blank = is_blank(self.ch());
while !is_breakz(self.ch()) { while !is_breakz(self.ch()) {
println!("----> {:?}", self.ch());
string.push(self.ch()); string.push(self.ch());
self.skip(); self.skip();
self.lookahead(1); self.lookahead(1);

View file

@ -2,6 +2,9 @@ use std::collections::BTreeMap;
use std::ops::Index; use std::ops::Index;
use std::string; use std::string;
use std::str::FromStr; use std::str::FromStr;
use std::mem;
use parser::*;
use scanner::{TScalarStyle, ScanError};
#[derive(Clone, PartialEq, PartialOrd, Debug, Eq, Ord)] #[derive(Clone, PartialEq, PartialOrd, Debug, Eq, Ord)]
pub enum Yaml { pub enum Yaml {
@ -20,6 +23,103 @@ pub enum Yaml {
pub type Array = Vec<Yaml>; pub type Array = Vec<Yaml>;
pub type Hash = BTreeMap<Yaml, Yaml>; pub type Hash = BTreeMap<Yaml, Yaml>;
pub struct YamlLoader {
docs: Vec<Yaml>,
// states
doc_stack: Vec<Yaml>,
key_stack: Vec<Yaml>,
}
impl EventReceiver for YamlLoader {
fn on_event(&mut self, ev: &Event) {
println!("EV {:?}", ev);
match *ev {
Event::DocumentStart => {
// do nothing
},
Event::DocumentEnd => {
match self.doc_stack.len() {
// empty document
0 => self.docs.push(Yaml::BadValue),
1 => self.docs.push(self.doc_stack.pop().unwrap()),
_ => unreachable!()
}
},
Event::SequenceStart => {
self.doc_stack.push(Yaml::Array(Vec::new()));
},
Event::SequenceEnd => {
let node = self.doc_stack.pop().unwrap();
self.insert_new_node(node);
},
Event::MappingStart => {
self.doc_stack.push(Yaml::Hash(Hash::new()));
self.key_stack.push(Yaml::BadValue);
},
Event::MappingEnd => {
self.key_stack.pop().unwrap();
let node = self.doc_stack.pop().unwrap();
self.insert_new_node(node);
},
Event::Scalar(ref v, style) => {
let node = if style != TScalarStyle::Plain {
Yaml::String(v.clone())
} else {
match v.as_ref() {
"~" => Yaml::Null,
"true" => Yaml::Boolean(true),
"false" => Yaml::Boolean(false),
// try parsing as f64
_ if v.parse::<f64>().is_ok() => Yaml::Number(v.clone()),
_ => Yaml::String(v.clone())
}
};
self.insert_new_node(node);
},
_ => { /* ignore */ }
}
// println!("DOC {:?}", self.doc_stack);
}
}
impl YamlLoader {
fn insert_new_node(&mut self, node: Yaml) {
if !self.doc_stack.is_empty() {
let parent = self.doc_stack.last_mut().unwrap();
match *parent {
Yaml::Array(ref mut v) => v.push(node),
Yaml::Hash(ref mut h) => {
let mut cur_key = self.key_stack.last_mut().unwrap();
// current node is a key
if cur_key.is_badvalue() {
*cur_key = node;
// current node is a value
} else {
let mut newkey = Yaml::BadValue;
mem::swap(&mut newkey, cur_key);
h.insert(newkey, node);
}
},
_ => unreachable!(),
}
} else {
self.doc_stack.push(node);
}
}
pub fn load_from_str(source: &str) -> Result<Vec<Yaml>, ScanError>{
let mut loader = YamlLoader {
docs: Vec::new(),
doc_stack: Vec::new(),
key_stack: Vec::new(),
};
let mut parser = Parser::new(source.chars());
try!(parser.load(&mut loader, true));
Ok(loader.docs)
}
}
macro_rules! define_as ( macro_rules! define_as (
($name:ident, $t:ident, $yt:ident) => ( ($name:ident, $t:ident, $yt:ident) => (
pub fn $name(&self) -> Option<$t> { pub fn $name(&self) -> Option<$t> {
@ -102,10 +202,11 @@ impl Index<usize> for Yaml {
} }
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use parser::Parser; use parser::Parser;
use yaml::Yaml; use yaml::*;
#[test] #[test]
fn test_coerce() { fn test_coerce() {
let s = "--- let s = "---
@ -113,13 +214,51 @@ a: 1
b: 2.2 b: 2.2
c: [1, 2] c: [1, 2]
"; ";
let mut parser = Parser::new(s.chars()); let out = YamlLoader::load_from_str(&s).unwrap();
let out = parser.load().unwrap(); let doc = &out[0];
assert_eq!(out["a"].as_number::<i32>().unwrap(), 1); assert_eq!(doc["a"].as_number::<i32>().unwrap(), 1);
assert_eq!(out["b"].as_number::<f32>().unwrap(), 2.2f32); assert_eq!(doc["b"].as_number::<f32>().unwrap(), 2.2f32);
assert_eq!(out["c"][1].as_number::<i32>().unwrap(), 2); assert_eq!(doc["c"][1].as_number::<i32>().unwrap(), 2);
assert!(out["d"][0].is_badvalue()); assert!(doc["d"][0].is_badvalue());
//assert_eq!(out.as_hash().unwrap()[&Yaml::String("a".to_string())].as_i64().unwrap(), 1i64);
} }
#[test]
fn test_parser() {
let s: String = "
# comment
a0 bb: val
a1:
b1: 4
b2: d
a2: 4 # i'm comment
a3: [1, 2, 3]
a4:
- - a1
- a2
- 2
a5: 'single_quoted'
a6: \"double_quoted\"
a7:
".to_string();
let out = YamlLoader::load_from_str(&s).unwrap();
let doc = &out[0];
println!("DOC {:?}", doc);
assert_eq!(doc["a7"].as_str().unwrap(), "你好");
}
#[test]
fn test_multi_doc() {
let s =
"
'a scalar'
---
'a scalar'
---
'a scalar'
";
let out = YamlLoader::load_from_str(&s).unwrap();
assert_eq!(out.len(), 3);
}
} }

View file

@ -1,66 +0,0 @@
#![allow(dead_code)]
extern crate yaml_rust;
use yaml_rust::parser::Parser;
use yaml_rust::yaml::Yaml;
#[derive(Clone, PartialEq, PartialOrd, Debug)]
enum TestEvent {
OnDocumentStart,
OnDocumentEnd,
OnSequenceStart,
OnSequenceEnd,
OnMapStart,
OnMapEnd,
OnScalar,
OnAlias,
OnNull,
}
fn yaml_to_test_events(docs: &Vec<Yaml>) -> Vec<TestEvent> {
println!("DOCS {:?}", docs);
fn next(root: &Yaml, evs: &mut Vec<TestEvent>) {
match *root {
Yaml::BadValue => { panic!("unexpected BadValue"); },
Yaml::Null => { evs.push(TestEvent::OnNull); },
Yaml::Array(ref v) => {
evs.push(TestEvent::OnSequenceStart);
for e in v {
next(e, evs);
}
evs.push(TestEvent::OnSequenceEnd);
},
Yaml::Hash(ref v) => {
evs.push(TestEvent::OnMapStart);
for (k, v) in v {
next(k, evs);
next(v, evs);
}
evs.push(TestEvent::OnMapEnd);
},
_ => { evs.push(TestEvent::OnScalar); }
}
}
let mut evs: Vec<TestEvent> = Vec::new();
for doc in docs {
evs.push(TestEvent::OnDocumentStart);
next(doc, &mut evs);
evs.push(TestEvent::OnDocumentEnd);
}
evs
}
macro_rules! assert_next {
($v:expr, $p:pat) => (
match $v.next().unwrap() {
$p => {},
e => { panic!("unexpected event: {:?}", e); }
}
)
}
// auto generated from handler_spec_test.cpp
include!("specexamples.rs.inc");
include!("spec_test.rs.inc");

View file

@ -1,7 +1,6 @@
#[test] #[test]
fn test_ex2_1_seq_scalars() { fn test_ex2_1_seq_scalars() {
let mut p = Parser::new(EX2_1.chars()); let mut v = str_to_test_events(EX2_1).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -13,8 +12,7 @@ fn test_ex2_1_seq_scalars() {
#[test] #[test]
fn test_ex2_2_mapping_scalars_to_scalars() { fn test_ex2_2_mapping_scalars_to_scalars() {
let mut p = Parser::new(EX2_2.chars()); let mut v = str_to_test_events(EX2_2).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -29,8 +27,7 @@ fn test_ex2_2_mapping_scalars_to_scalars() {
#[test] #[test]
fn test_ex2_3_mapping_scalars_to_sequences() { fn test_ex2_3_mapping_scalars_to_sequences() {
let mut p = Parser::new(EX2_3.chars()); let mut v = str_to_test_events(EX2_3).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -51,8 +48,7 @@ fn test_ex2_3_mapping_scalars_to_sequences() {
#[test] #[test]
fn test_ex2_4_sequence_of_mappings() { fn test_ex2_4_sequence_of_mappings() {
let mut p = Parser::new(EX2_4.chars()); let mut v = str_to_test_events(EX2_4).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -77,8 +73,7 @@ fn test_ex2_4_sequence_of_mappings() {
#[test] #[test]
fn test_ex2_5_sequence_of_sequences() { fn test_ex2_5_sequence_of_sequences() {
let mut p = Parser::new(EX2_5.chars()); let mut v = str_to_test_events(EX2_5).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
@ -102,8 +97,7 @@ fn test_ex2_5_sequence_of_sequences() {
#[test] #[test]
fn test_ex2_6_mapping_of_mappings() { fn test_ex2_6_mapping_of_mappings() {
let mut p = Parser::new(EX2_6.chars()); let mut v = str_to_test_events(EX2_6).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -126,8 +120,7 @@ fn test_ex2_6_mapping_of_mappings() {
#[test] #[test]
fn test_ex2_7_two_documents_in_a_stream() { fn test_ex2_7_two_documents_in_a_stream() {
let mut p = Parser::new(EX2_7.chars()); let mut v = str_to_test_events(EX2_7).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -145,8 +138,7 @@ fn test_ex2_7_two_documents_in_a_stream() {
#[test] #[test]
fn test_ex2_8_play_by_play_feed() { fn test_ex2_8_play_by_play_feed() {
let mut p = Parser::new(EX2_8.chars()); let mut v = str_to_test_events(EX2_8).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -171,8 +163,7 @@ fn test_ex2_8_play_by_play_feed() {
#[test] #[test]
fn test_ex2_9_single_document_with_two_comments() { fn test_ex2_9_single_document_with_two_comments() {
let mut p = Parser::new(EX2_9.chars()); let mut v = str_to_test_events(EX2_9).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -191,8 +182,7 @@ fn test_ex2_9_single_document_with_two_comments() {
#[test] #[test]
fn test_ex2_10_simple_anchor() { fn test_ex2_10_simple_anchor() {
let mut p = Parser::new(EX2_10.chars()); let mut v = str_to_test_events(EX2_10).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -211,8 +201,7 @@ fn test_ex2_10_simple_anchor() {
#[test] #[test]
fn test_ex2_11_mapping_between_sequences() { fn test_ex2_11_mapping_between_sequences() {
let mut p = Parser::new(EX2_11.chars()); let mut v = str_to_test_events(EX2_11).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
@ -237,8 +226,7 @@ fn test_ex2_11_mapping_between_sequences() {
#[test] #[test]
fn test_ex2_12_compact_nested_mapping() { fn test_ex2_12_compact_nested_mapping() {
let mut p = Parser::new(EX2_12.chars()); let mut v = str_to_test_events(EX2_12).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -265,8 +253,7 @@ fn test_ex2_12_compact_nested_mapping() {
#[test] #[test]
fn test_ex2_13_in_literals_newlines_are_preserved() { fn test_ex2_13_in_literals_newlines_are_preserved() {
let mut p = Parser::new(EX2_13.chars()); let mut v = str_to_test_events(EX2_13).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -274,8 +261,7 @@ fn test_ex2_13_in_literals_newlines_are_preserved() {
#[test] #[test]
fn test_ex2_14_in_folded_scalars_newlines_become_spaces() { fn test_ex2_14_in_folded_scalars_newlines_become_spaces() {
let mut p = Parser::new(EX2_14.chars()); let mut v = str_to_test_events(EX2_14).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -283,8 +269,7 @@ fn test_ex2_14_in_folded_scalars_newlines_become_spaces() {
#[test] #[test]
fn test_ex2_15_folded_newlines_are_preserved_for_more_indented_and_blank_lines() { fn test_ex2_15_folded_newlines_are_preserved_for_more_indented_and_blank_lines() {
let mut p = Parser::new(EX2_15.chars()); let mut v = str_to_test_events(EX2_15).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -292,8 +277,7 @@ fn test_ex2_15_folded_newlines_are_preserved_for_more_indented_and_blank_lines()
#[test] #[test]
fn test_ex2_16_indentation_determines_scope() { fn test_ex2_16_indentation_determines_scope() {
let mut p = Parser::new(EX2_16.chars()); let mut v = str_to_test_events(EX2_16).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -308,8 +292,7 @@ fn test_ex2_16_indentation_determines_scope() {
#[test] #[test]
fn test_ex2_17_quoted_scalars() { fn test_ex2_17_quoted_scalars() {
let mut p = Parser::new(EX2_17.chars()); let mut v = str_to_test_events(EX2_17).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -330,8 +313,7 @@ fn test_ex2_17_quoted_scalars() {
#[test] #[test]
fn test_ex2_18_multi_line_flow_scalars() { fn test_ex2_18_multi_line_flow_scalars() {
let mut p = Parser::new(EX2_18.chars()); let mut v = str_to_test_events(EX2_18).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -344,8 +326,7 @@ fn test_ex2_18_multi_line_flow_scalars() {
#[test] #[test]
fn test_ex2_23_various_explicit_tags() { fn test_ex2_23_various_explicit_tags() {
let mut p = Parser::new(EX2_23.chars()); let mut v = str_to_test_events(EX2_23).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -360,8 +341,7 @@ fn test_ex2_23_various_explicit_tags() {
#[test] #[test]
fn test_ex2_24_global_tags() { fn test_ex2_24_global_tags() {
let mut p = Parser::new(EX2_24.chars()); let mut v = str_to_test_events(EX2_24).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -400,8 +380,7 @@ fn test_ex2_24_global_tags() {
#[test] #[test]
fn test_ex2_25_unordered_sets() { fn test_ex2_25_unordered_sets() {
let mut p = Parser::new(EX2_25.chars()); let mut v = str_to_test_events(EX2_25).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -416,8 +395,7 @@ fn test_ex2_25_unordered_sets() {
#[test] #[test]
fn test_ex2_26_ordered_mappings() { fn test_ex2_26_ordered_mappings() {
let mut p = Parser::new(EX2_26.chars()); let mut v = str_to_test_events(EX2_26).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -438,8 +416,7 @@ fn test_ex2_26_ordered_mappings() {
#[test] #[test]
fn test_ex2_27_invoice() { fn test_ex2_27_invoice() {
let mut p = Parser::new(EX2_27.chars()); let mut v = str_to_test_events(EX2_27).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -501,8 +478,7 @@ fn test_ex2_27_invoice() {
#[test] #[test]
fn test_ex2_28_log_file() { fn test_ex2_28_log_file() {
let mut p = Parser::new(EX2_28.chars()); let mut v = str_to_test_events(EX2_28).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -556,8 +532,7 @@ fn test_ex2_28_log_file() {
#[test] #[test]
fn test_ex5_3_block_structure_indicators() { fn test_ex5_3_block_structure_indicators() {
let mut p = Parser::new(EX5_3.chars()); let mut v = str_to_test_events(EX5_3).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -578,8 +553,7 @@ fn test_ex5_3_block_structure_indicators() {
#[test] #[test]
fn test_ex5_4_flow_structure_indicators() { fn test_ex5_4_flow_structure_indicators() {
let mut p = Parser::new(EX5_4.chars()); let mut v = str_to_test_events(EX5_4).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -600,8 +574,7 @@ fn test_ex5_4_flow_structure_indicators() {
#[test] #[test]
fn test_ex5_6_node_property_indicators() { fn test_ex5_6_node_property_indicators() {
let mut p = Parser::new(EX5_6.chars()); let mut v = str_to_test_events(EX5_6).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -614,8 +587,7 @@ fn test_ex5_6_node_property_indicators() {
#[test] #[test]
fn test_ex5_7_block_scalar_indicators() { fn test_ex5_7_block_scalar_indicators() {
let mut p = Parser::new(EX5_7.chars()); let mut v = str_to_test_events(EX5_7).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -628,8 +600,7 @@ fn test_ex5_7_block_scalar_indicators() {
#[test] #[test]
fn test_ex5_8_quoted_scalar_indicators() { fn test_ex5_8_quoted_scalar_indicators() {
let mut p = Parser::new(EX5_8.chars()); let mut v = str_to_test_events(EX5_8).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -642,8 +613,7 @@ fn test_ex5_8_quoted_scalar_indicators() {
#[test] #[test]
fn test_ex5_11_line_break_characters() { fn test_ex5_11_line_break_characters() {
let mut p = Parser::new(EX5_11.chars()); let mut v = str_to_test_events(EX5_11).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -651,8 +621,7 @@ fn test_ex5_11_line_break_characters() {
#[test] #[test]
fn test_ex5_12_tabs_and_spaces() { fn test_ex5_12_tabs_and_spaces() {
let mut p = Parser::new(EX5_12.chars()); let mut v = str_to_test_events(EX5_12).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -665,8 +634,7 @@ fn test_ex5_12_tabs_and_spaces() {
#[test] #[test]
fn test_ex5_13_escaped_characters() { fn test_ex5_13_escaped_characters() {
let mut p = Parser::new(EX5_13.chars()); let mut v = str_to_test_events(EX5_13).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -674,8 +642,7 @@ fn test_ex5_13_escaped_characters() {
#[test] #[test]
fn test_ex6_1_indentation_spaces() { fn test_ex6_1_indentation_spaces() {
let mut p = Parser::new(EX6_1.chars()); let mut v = str_to_test_events(EX6_1).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -695,8 +662,7 @@ fn test_ex6_1_indentation_spaces() {
#[test] #[test]
fn test_ex6_2_indentation_indicators() { fn test_ex6_2_indentation_indicators() {
let mut p = Parser::new(EX6_2.chars()); let mut v = str_to_test_events(EX6_2).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -713,8 +679,7 @@ fn test_ex6_2_indentation_indicators() {
#[test] #[test]
fn test_ex6_3_separation_spaces() { fn test_ex6_3_separation_spaces() {
let mut p = Parser::new(EX6_3.chars()); let mut v = str_to_test_events(EX6_3).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -731,8 +696,7 @@ fn test_ex6_3_separation_spaces() {
#[test] #[test]
fn test_ex6_4_line_prefixes() { fn test_ex6_4_line_prefixes() {
let mut p = Parser::new(EX6_4.chars()); let mut v = str_to_test_events(EX6_4).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -747,8 +711,7 @@ fn test_ex6_4_line_prefixes() {
#[test] #[test]
fn test_ex6_5_empty_lines() { fn test_ex6_5_empty_lines() {
let mut p = Parser::new(EX6_5.chars()); let mut v = str_to_test_events(EX6_5).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -761,8 +724,7 @@ fn test_ex6_5_empty_lines() {
#[test] #[test]
fn test_ex6_6_line_folding() { fn test_ex6_6_line_folding() {
let mut p = Parser::new(EX6_6.chars()); let mut v = str_to_test_events(EX6_6).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -770,8 +732,7 @@ fn test_ex6_6_line_folding() {
#[test] #[test]
fn test_ex6_7_block_folding() { fn test_ex6_7_block_folding() {
let mut p = Parser::new(EX6_7.chars()); let mut v = str_to_test_events(EX6_7).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -779,8 +740,7 @@ fn test_ex6_7_block_folding() {
#[test] #[test]
fn test_ex6_8_flow_folding() { fn test_ex6_8_flow_folding() {
let mut p = Parser::new(EX6_8.chars()); let mut v = str_to_test_events(EX6_8).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -788,8 +748,7 @@ fn test_ex6_8_flow_folding() {
#[test] #[test]
fn test_ex6_9_separated_comment() { fn test_ex6_9_separated_comment() {
let mut p = Parser::new(EX6_9.chars()); let mut v = str_to_test_events(EX6_9).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -800,8 +759,7 @@ fn test_ex6_9_separated_comment() {
#[test] #[test]
fn test_ex6_12_separation_spaces_ii() { fn test_ex6_12_separation_spaces_ii() {
let mut p = Parser::new(EX6_12.chars()); let mut v = str_to_test_events(EX6_12).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -822,8 +780,7 @@ fn test_ex6_12_separation_spaces_ii() {
#[test] #[test]
fn test_ex6_13_reserved_directives() { fn test_ex6_13_reserved_directives() {
let mut p = Parser::new(EX6_13.chars()); let mut v = str_to_test_events(EX6_13).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -831,8 +788,7 @@ fn test_ex6_13_reserved_directives() {
#[test] #[test]
fn test_ex6_14_yaml_directive() { fn test_ex6_14_yaml_directive() {
let mut p = Parser::new(EX6_14.chars()); let mut v = str_to_test_events(EX6_14).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -840,8 +796,7 @@ fn test_ex6_14_yaml_directive() {
#[test] #[test]
fn test_ex6_16_tag_directive() { fn test_ex6_16_tag_directive() {
let mut p = Parser::new(EX6_16.chars()); let mut v = str_to_test_events(EX6_16).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -849,8 +804,7 @@ fn test_ex6_16_tag_directive() {
#[test] #[test]
fn test_ex6_18_primary_tag_handle() { fn test_ex6_18_primary_tag_handle() {
let mut p = Parser::new(EX6_18.chars()); let mut v = str_to_test_events(EX6_18).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -861,8 +815,7 @@ fn test_ex6_18_primary_tag_handle() {
#[test] #[test]
fn test_ex6_19_secondary_tag_handle() { fn test_ex6_19_secondary_tag_handle() {
let mut p = Parser::new(EX6_19.chars()); let mut v = str_to_test_events(EX6_19).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -870,8 +823,7 @@ fn test_ex6_19_secondary_tag_handle() {
#[test] #[test]
fn test_ex6_20_tag_handles() { fn test_ex6_20_tag_handles() {
let mut p = Parser::new(EX6_20.chars()); let mut v = str_to_test_events(EX6_20).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -879,8 +831,7 @@ fn test_ex6_20_tag_handles() {
#[test] #[test]
fn test_ex6_21_local_tag_prefix() { fn test_ex6_21_local_tag_prefix() {
let mut p = Parser::new(EX6_21.chars()); let mut v = str_to_test_events(EX6_21).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -891,8 +842,7 @@ fn test_ex6_21_local_tag_prefix() {
#[test] #[test]
fn test_ex6_22_global_tag_prefix() { fn test_ex6_22_global_tag_prefix() {
let mut p = Parser::new(EX6_22.chars()); let mut v = str_to_test_events(EX6_22).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -902,8 +852,7 @@ fn test_ex6_22_global_tag_prefix() {
#[test] #[test]
fn test_ex6_23_node_properties() { fn test_ex6_23_node_properties() {
let mut p = Parser::new(EX6_23.chars()); let mut v = str_to_test_events(EX6_23).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -916,8 +865,7 @@ fn test_ex6_23_node_properties() {
#[test] #[test]
fn test_ex6_24_verbatim_tags() { fn test_ex6_24_verbatim_tags() {
let mut p = Parser::new(EX6_24.chars()); let mut v = str_to_test_events(EX6_24).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -928,8 +876,7 @@ fn test_ex6_24_verbatim_tags() {
#[test] #[test]
fn test_ex6_26_tag_shorthands() { fn test_ex6_26_tag_shorthands() {
let mut p = Parser::new(EX6_26.chars()); let mut v = str_to_test_events(EX6_26).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -941,8 +888,7 @@ fn test_ex6_26_tag_shorthands() {
#[test] #[test]
fn test_ex6_28_non_specific_tags() { fn test_ex6_28_non_specific_tags() {
let mut p = Parser::new(EX6_28.chars()); let mut v = str_to_test_events(EX6_28).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -954,8 +900,7 @@ fn test_ex6_28_non_specific_tags() {
#[test] #[test]
fn test_ex6_29_node_anchors() { fn test_ex6_29_node_anchors() {
let mut p = Parser::new(EX6_29.chars()); let mut v = str_to_test_events(EX6_29).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -968,8 +913,7 @@ fn test_ex6_29_node_anchors() {
#[test] #[test]
fn test_ex7_1_alias_nodes() { fn test_ex7_1_alias_nodes() {
let mut p = Parser::new(EX7_1.chars()); let mut v = str_to_test_events(EX7_1).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -986,8 +930,7 @@ fn test_ex7_1_alias_nodes() {
#[test] #[test]
fn test_ex7_2_empty_nodes() { fn test_ex7_2_empty_nodes() {
let mut p = Parser::new(EX7_2.chars()); let mut v = str_to_test_events(EX7_2).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1000,8 +943,7 @@ fn test_ex7_2_empty_nodes() {
#[test] #[test]
fn test_ex7_3_completely_empty_nodes() { fn test_ex7_3_completely_empty_nodes() {
let mut p = Parser::new(EX7_3.chars()); let mut v = str_to_test_events(EX7_3).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1014,8 +956,7 @@ fn test_ex7_3_completely_empty_nodes() {
#[test] #[test]
fn test_ex7_4_double_quoted_implicit_keys() { fn test_ex7_4_double_quoted_implicit_keys() {
let mut p = Parser::new(EX7_4.chars()); let mut v = str_to_test_events(EX7_4).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1031,8 +972,7 @@ fn test_ex7_4_double_quoted_implicit_keys() {
#[test] #[test]
fn test_ex7_5_double_quoted_line_breaks() { fn test_ex7_5_double_quoted_line_breaks() {
let mut p = Parser::new(EX7_5.chars()); let mut v = str_to_test_events(EX7_5).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1040,8 +980,7 @@ fn test_ex7_5_double_quoted_line_breaks() {
#[test] #[test]
fn test_ex7_6_double_quoted_lines() { fn test_ex7_6_double_quoted_lines() {
let mut p = Parser::new(EX7_6.chars()); let mut v = str_to_test_events(EX7_6).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1049,8 +988,7 @@ fn test_ex7_6_double_quoted_lines() {
#[test] #[test]
fn test_ex7_7_single_quoted_characters() { fn test_ex7_7_single_quoted_characters() {
let mut p = Parser::new(EX7_7.chars()); let mut v = str_to_test_events(EX7_7).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1058,8 +996,7 @@ fn test_ex7_7_single_quoted_characters() {
#[test] #[test]
fn test_ex7_8_single_quoted_implicit_keys() { fn test_ex7_8_single_quoted_implicit_keys() {
let mut p = Parser::new(EX7_8.chars()); let mut v = str_to_test_events(EX7_8).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1075,8 +1012,7 @@ fn test_ex7_8_single_quoted_implicit_keys() {
#[test] #[test]
fn test_ex7_9_single_quoted_lines() { fn test_ex7_9_single_quoted_lines() {
let mut p = Parser::new(EX7_9.chars()); let mut v = str_to_test_events(EX7_9).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1084,8 +1020,7 @@ fn test_ex7_9_single_quoted_lines() {
#[test] #[test]
fn test_ex7_10_plain_characters() { fn test_ex7_10_plain_characters() {
let mut p = Parser::new(EX7_10.chars()); let mut v = str_to_test_events(EX7_10).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1106,8 +1041,7 @@ fn test_ex7_10_plain_characters() {
#[test] #[test]
fn test_ex7_11_plain_implicit_keys() { fn test_ex7_11_plain_implicit_keys() {
let mut p = Parser::new(EX7_11.chars()); let mut v = str_to_test_events(EX7_11).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1123,8 +1057,7 @@ fn test_ex7_11_plain_implicit_keys() {
#[test] #[test]
fn test_ex7_12_plain_lines() { fn test_ex7_12_plain_lines() {
let mut p = Parser::new(EX7_12.chars()); let mut v = str_to_test_events(EX7_12).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1132,8 +1065,7 @@ fn test_ex7_12_plain_lines() {
#[test] #[test]
fn test_ex7_13_flow_sequence() { fn test_ex7_13_flow_sequence() {
let mut p = Parser::new(EX7_13.chars()); let mut v = str_to_test_events(EX7_13).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
@ -1150,8 +1082,7 @@ fn test_ex7_13_flow_sequence() {
#[test] #[test]
fn test_ex7_14_flow_sequence_entries() { fn test_ex7_14_flow_sequence_entries() {
let mut p = Parser::new(EX7_14.chars()); let mut v = str_to_test_events(EX7_14).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1170,8 +1101,7 @@ fn test_ex7_14_flow_sequence_entries() {
#[test] #[test]
fn test_ex7_15_flow_mappings() { fn test_ex7_15_flow_mappings() {
let mut p = Parser::new(EX7_15.chars()); let mut v = str_to_test_events(EX7_15).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -1192,8 +1122,7 @@ fn test_ex7_15_flow_mappings() {
#[test] #[test]
fn test_ex7_16_flow_mapping_entries() { fn test_ex7_16_flow_mapping_entries() {
let mut p = Parser::new(EX7_16.chars()); let mut v = str_to_test_events(EX7_16).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1208,8 +1137,7 @@ fn test_ex7_16_flow_mapping_entries() {
#[test] #[test]
fn test_ex7_17_flow_mapping_separate_values() { fn test_ex7_17_flow_mapping_separate_values() {
let mut p = Parser::new(EX7_17.chars()); let mut v = str_to_test_events(EX7_17).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1226,8 +1154,7 @@ fn test_ex7_17_flow_mapping_separate_values() {
#[test] #[test]
fn test_ex7_18_flow_mapping_adjacent_values() { fn test_ex7_18_flow_mapping_adjacent_values() {
let mut p = Parser::new(EX7_18.chars()); let mut v = str_to_test_events(EX7_18).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1242,8 +1169,7 @@ fn test_ex7_18_flow_mapping_adjacent_values() {
#[test] #[test]
fn test_ex7_19_single_pair_flow_mappings() { fn test_ex7_19_single_pair_flow_mappings() {
let mut p = Parser::new(EX7_19.chars()); let mut v = str_to_test_events(EX7_19).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -1256,8 +1182,7 @@ fn test_ex7_19_single_pair_flow_mappings() {
#[test] #[test]
fn test_ex7_20_single_pair_explicit_entry() { fn test_ex7_20_single_pair_explicit_entry() {
let mut p = Parser::new(EX7_20.chars()); let mut v = str_to_test_events(EX7_20).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -1270,8 +1195,7 @@ fn test_ex7_20_single_pair_explicit_entry() {
#[test] #[test]
fn test_ex7_21_single_pair_implicit_entries() { fn test_ex7_21_single_pair_implicit_entries() {
let mut p = Parser::new(EX7_21.chars()); let mut v = str_to_test_events(EX7_21).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
@ -1301,8 +1225,7 @@ fn test_ex7_21_single_pair_implicit_entries() {
#[test] #[test]
fn test_ex7_23_flow_content() { fn test_ex7_23_flow_content() {
let mut p = Parser::new(EX7_23.chars()); let mut v = str_to_test_events(EX7_23).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
@ -1322,8 +1245,7 @@ fn test_ex7_23_flow_content() {
#[test] #[test]
fn test_ex7_24_flow_nodes() { fn test_ex7_24_flow_nodes() {
let mut p = Parser::new(EX7_24.chars()); let mut v = str_to_test_events(EX7_24).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1337,8 +1259,7 @@ fn test_ex7_24_flow_nodes() {
#[test] #[test]
fn test_ex8_1_block_scalar_header() { fn test_ex8_1_block_scalar_header() {
let mut p = Parser::new(EX8_1.chars()); let mut v = str_to_test_events(EX8_1).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1351,8 +1272,7 @@ fn test_ex8_1_block_scalar_header() {
#[test] #[test]
fn test_ex8_2_block_indentation_header() { fn test_ex8_2_block_indentation_header() {
let mut p = Parser::new(EX8_2.chars()); let mut v = str_to_test_events(EX8_2).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1365,8 +1285,7 @@ fn test_ex8_2_block_indentation_header() {
#[test] #[test]
fn test_ex8_4_chomping_final_line_break() { fn test_ex8_4_chomping_final_line_break() {
let mut p = Parser::new(EX8_4.chars()); let mut v = str_to_test_events(EX8_4).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1381,8 +1300,7 @@ fn test_ex8_4_chomping_final_line_break() {
#[test] #[test]
fn test_ex8_6_empty_scalar_chomping() { fn test_ex8_6_empty_scalar_chomping() {
let mut p = Parser::new(EX8_6.chars()); let mut v = str_to_test_events(EX8_6).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1397,8 +1315,7 @@ fn test_ex8_6_empty_scalar_chomping() {
#[test] #[test]
fn test_ex8_7_literal_scalar() { fn test_ex8_7_literal_scalar() {
let mut p = Parser::new(EX8_7.chars()); let mut v = str_to_test_events(EX8_7).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1406,8 +1323,7 @@ fn test_ex8_7_literal_scalar() {
#[test] #[test]
fn test_ex8_8_literal_content() { fn test_ex8_8_literal_content() {
let mut p = Parser::new(EX8_8.chars()); let mut v = str_to_test_events(EX8_8).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1415,8 +1331,7 @@ fn test_ex8_8_literal_content() {
#[test] #[test]
fn test_ex8_9_folded_scalar() { fn test_ex8_9_folded_scalar() {
let mut p = Parser::new(EX8_9.chars()); let mut v = str_to_test_events(EX8_9).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1424,8 +1339,7 @@ fn test_ex8_9_folded_scalar() {
#[test] #[test]
fn test_ex8_10_folded_lines() { fn test_ex8_10_folded_lines() {
let mut p = Parser::new(EX8_10.chars()); let mut v = str_to_test_events(EX8_10).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1433,8 +1347,7 @@ fn test_ex8_10_folded_lines() {
#[test] #[test]
fn test_ex8_11_more_indented_lines() { fn test_ex8_11_more_indented_lines() {
let mut p = Parser::new(EX8_11.chars()); let mut v = str_to_test_events(EX8_11).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1442,8 +1355,7 @@ fn test_ex8_11_more_indented_lines() {
#[test] #[test]
fn test_ex8_12_empty_separation_lines() { fn test_ex8_12_empty_separation_lines() {
let mut p = Parser::new(EX8_12.chars()); let mut v = str_to_test_events(EX8_12).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1451,8 +1363,7 @@ fn test_ex8_12_empty_separation_lines() {
#[test] #[test]
fn test_ex8_13_final_empty_lines() { fn test_ex8_13_final_empty_lines() {
let mut p = Parser::new(EX8_13.chars()); let mut v = str_to_test_events(EX8_13).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
assert_next!(v, TestEvent::OnDocumentEnd); assert_next!(v, TestEvent::OnDocumentEnd);
@ -1460,8 +1371,7 @@ fn test_ex8_13_final_empty_lines() {
#[test] #[test]
fn test_ex8_14_block_sequence() { fn test_ex8_14_block_sequence() {
let mut p = Parser::new(EX8_14.chars()); let mut v = str_to_test_events(EX8_14).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1478,8 +1388,7 @@ fn test_ex8_14_block_sequence() {
#[test] #[test]
fn test_ex8_15_block_sequence_entry_types() { fn test_ex8_15_block_sequence_entry_types() {
let mut p = Parser::new(EX8_15.chars()); let mut v = str_to_test_events(EX8_15).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnNull); assert_next!(v, TestEvent::OnNull);
@ -1498,8 +1407,7 @@ fn test_ex8_15_block_sequence_entry_types() {
#[test] #[test]
fn test_ex8_16_block_mappings() { fn test_ex8_16_block_mappings() {
let mut p = Parser::new(EX8_16.chars()); let mut v = str_to_test_events(EX8_16).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1513,8 +1421,7 @@ fn test_ex8_16_block_mappings() {
#[test] #[test]
fn test_ex8_17_explicit_block_mapping_entries() { fn test_ex8_17_explicit_block_mapping_entries() {
let mut p = Parser::new(EX8_17.chars()); let mut v = str_to_test_events(EX8_17).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1530,8 +1437,7 @@ fn test_ex8_17_explicit_block_mapping_entries() {
#[test] #[test]
fn test_ex8_18_implicit_block_mapping_entries() { fn test_ex8_18_implicit_block_mapping_entries() {
let mut p = Parser::new(EX8_18.chars()); let mut v = str_to_test_events(EX8_18).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1548,8 +1454,7 @@ fn test_ex8_18_implicit_block_mapping_entries() {
#[test] #[test]
fn test_ex8_19_compact_block_mappings() { fn test_ex8_19_compact_block_mappings() {
let mut p = Parser::new(EX8_19.chars()); let mut v = str_to_test_events(EX8_19).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
@ -1572,8 +1477,7 @@ fn test_ex8_19_compact_block_mappings() {
#[test] #[test]
fn test_ex8_20_block_node_types() { fn test_ex8_20_block_node_types() {
let mut p = Parser::new(EX8_20.chars()); let mut v = str_to_test_events(EX8_20).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnSequenceStart); assert_next!(v, TestEvent::OnSequenceStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);
@ -1588,8 +1492,7 @@ fn test_ex8_20_block_node_types() {
#[test] #[test]
fn test_ex8_22_block_collection_nodes() { fn test_ex8_22_block_collection_nodes() {
let mut p = Parser::new(EX8_22.chars()); let mut v = str_to_test_events(EX8_22).into_iter();
let mut v = yaml_to_test_events(&p.load_multidoc().unwrap()).into_iter();
assert_next!(v, TestEvent::OnDocumentStart); assert_next!(v, TestEvent::OnDocumentStart);
assert_next!(v, TestEvent::OnMapStart); assert_next!(v, TestEvent::OnMapStart);
assert_next!(v, TestEvent::OnScalar); assert_next!(v, TestEvent::OnScalar);