yaml_rust2::parser

Struct Parser

source
pub struct Parser<T> { /* private fields */ }
Expand description

A YAML parser.

Implementations§

source§

impl<'a> Parser<Chars<'a>>

source

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>

source

pub fn new(src: T) -> Parser<T>

Create a new instance of a parser from the given input of characters.

source

pub fn keep_tags(self, value: bool) -> Self

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: f

With 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.

source

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.

source

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.

source

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.

Trait Implementations§

source§

impl<T: Debug> Debug for Parser<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Parser<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Parser<T>
where T: RefUnwindSafe,

§

impl<T> Send for Parser<T>
where T: Send,

§

impl<T> Sync for Parser<T>
where T: Sync,

§

impl<T> Unpin for Parser<T>
where T: Unpin,

§

impl<T> UnwindSafe for Parser<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.