Struct ElementParser

Source
pub struct ElementParser {
    pub element: Option<Elements>,
    pub error: Option<ErrorCodes>,
    pub line_number: usize,
    /* private fields */
}
Expand description

This struct is responsible for evaluating the Delimiters in each line, parsing the KeyVals, building the Elements variant or providing the ErrorCodes if an element could not be built.

Fields§

§element: Option<Elements>§error: Option<ErrorCodes>§line_number: usize

Implementations§

Source§

impl ElementParser

Source

pub fn is_ok(&self) -> bool

Short-hand to query Self::error is None.

Source

pub fn read( line_number: usize, line: &str, literals: &Option<Vec<Literal>>, ) -> ElementParser

This is the entry-point for the entire element parsing algorithm broken down into the following steps: - Parsing the element type and name. - Parsing the remaining tokens via Self::parse_tokens. - Which must first call Self::collect_tokens. - And then evaluating the tokens Self::evaluate_keyvals.

The process must ensure custom Literals are respected and that the order of delimiter characters are evaluated correctly to best parse the remaining KeyVals. The judgement for the delimiter uses a heuristic which looks for Glyphs::Equal outside of string literal spans.

Auto Trait Implementations§

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.