pub trait YggdrasilNode<'i>: Clone + Debug {
    type Rule: YggdrasilRule;

    // Required methods
    fn from_pair(
        pair: TokenPair<'i, Self::Rule>
    ) -> Result<Self, YggdrasilError<Self::Rule>>;
    fn get_range(&self) -> Range<usize>;

    // Provided methods
    fn from_str(
        input: &'i str,
        offset: usize
    ) -> Result<Self, YggdrasilError<Self::Rule>> { ... }
    fn from_cst(
        tree: TokenTree<'i, Self::Rule>
    ) -> Result<Self, YggdrasilError<Self::Rule>> { ... }
    fn get_rule(&self) -> Self::Rule { ... }
    fn get_str(&self) -> &'i str { ... }
    fn get_chars(&self) -> Chars<'i> { ... }
}
Expand description

A typed ast node

Required Associated Types§

source

type Rule: YggdrasilRule

Specify the rules of this language

Required Methods§

source

fn from_pair( pair: TokenPair<'i, Self::Rule> ) -> Result<Self, YggdrasilError<Self::Rule>>

from

source

fn get_range(&self) -> Range<usize>

Provided Methods§

source

fn from_str( input: &'i str, offset: usize ) -> Result<Self, YggdrasilError<Self::Rule>>

source

fn from_cst( tree: TokenTree<'i, Self::Rule> ) -> Result<Self, YggdrasilError<Self::Rule>>

from

source

fn get_rule(&self) -> Self::Rule

get rule

source

fn get_str(&self) -> &'i str

source

fn get_chars(&self) -> Chars<'i>

Object Safety§

This trait is not object safe.

Implementors§