Struct branchy::Expander[][src]

pub struct Expander<Nt, T, RS, EL> where
    RS: RuleSelector<Nt, T>,
    EL: ExpansionLogger<Nt, T>, 
{ /* fields omitted */ }
Expand description

Provides expand() method to perform the expansion of the input sequence.

Can be constructed using ExpanderBuilder.

Implementations

impl<Nt, T, RS, EL> Expander<Nt, T, RS, EL> where
    Nt: NonterminalValue,
    T: TerminalValue,
    RS: RuleSelector<Nt, T>,
    EL: ExpansionLogger<Nt, T>, 
[src]

pub fn expand(&mut self, input: Vec<Symbol<Nt, T>>) -> Result<Nt, T>[src]

Expands the input sequence using the Rules and RuleSelector which were specified for this Expander via ExpanderBuilder.

Returns a Result which contains the resulting sequence of terminal symbol values on success or an appropriate Error on failure.

Errors

Will result in an Error if there is no matching rule to expand a non-terminal symbol or if the maximum number of iterations has been reached while there are still non-terminal symbols left.

Auto Trait Implementations

impl<Nt, T, RS, EL> RefUnwindSafe for Expander<Nt, T, RS, EL> where
    EL: RefUnwindSafe,
    Nt: RefUnwindSafe,
    RS: RefUnwindSafe,
    T: RefUnwindSafe

impl<Nt, T, RS, EL> Send for Expander<Nt, T, RS, EL> where
    EL: Send,
    Nt: Send,
    RS: Send,
    T: Send

impl<Nt, T, RS, EL> Sync for Expander<Nt, T, RS, EL> where
    EL: Sync,
    Nt: Sync,
    RS: Sync,
    T: Sync

impl<Nt, T, RS, EL> Unpin for Expander<Nt, T, RS, EL> where
    EL: Unpin,
    Nt: Unpin,
    RS: Unpin,
    T: Unpin

impl<Nt, T, RS, EL> UnwindSafe for Expander<Nt, T, RS, EL> where
    EL: UnwindSafe,
    Nt: UnwindSafe,
    RS: UnwindSafe,
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V