pub struct Parser<T> { /* private fields */ }Expand description
A YAML parser.
Implementations§
Source§impl<'a> Parser<Chars<'a>>
impl<'a> Parser<Chars<'a>>
Sourcepub fn new_from_str(value: &'a str) -> Self
pub fn new_from_str(value: &'a str) -> Self
Create a new instance of a parser from a &str.
Source§impl<T: Iterator<Item = char>> Parser<T>
impl<T: Iterator<Item = char>> Parser<T>
Sourcepub fn new(src: T) -> Parser<T>
pub fn new(src: T) -> Parser<T>
Create a new instance of a parser from the given input of characters.
Whether to keep tags across multiple documents when parsing.
This behavior is non-standard as per the YAML specification but can be encountered in the wild. This boolean allows enabling this non-standard extension. This would result in the parser accepting input from test QLJ7 of the yaml-test-suite:
%TAG !prefix! tag:example.com,2011:
--- !prefix!A
a: b
--- !prefix!B
c: d
--- !prefix!C
e: fWith keep_tags set to false, the above YAML is rejected. As per the specification, tags
only apply to the document immediately following them. This would error on !prefix!B.
With keep_tags set to true, the above YAML is accepted by the parser.
Sourcepub fn peek(&mut self) -> Result<&(Event, Marker), ScanError>
pub fn peek(&mut self) -> Result<&(Event, Marker), ScanError>
Try to load the next event and return it, but do not consuming it from self.
Any subsequent call to Parser::peek will return the same value, until a call to
Iterator::next or Parser::load.
§Errors
Returns ScanError when loading the next event fails.
Sourcepub fn next_token(&mut self) -> ParseResult
pub fn next_token(&mut self) -> ParseResult
Try to load the next event and return it, consuming it from self.
§Errors
Returns ScanError when loading the next event fails.
Sourcepub fn load<R: MarkedEventReceiver>(
&mut self,
recv: &mut R,
multi: bool,
) -> Result<(), ScanError>
pub fn load<R: MarkedEventReceiver>( &mut self, recv: &mut R, multi: bool, ) -> Result<(), ScanError>
Load the YAML from the stream in self, pushing events into recv.
The contents of the stream are parsed and the corresponding events are sent into the
recveiver. For detailed explanations about how events work, see EventReceiver.
If multi is set to true, the parser will allow parsing of multiple YAML documents
inside the stream.
Note that any EventReceiver is also a MarkedEventReceiver, so implementing the
former is enough to call this function.
§Errors
Returns ScanError when loading fails.