Trait ezno_parser::ASTNode
source · pub trait ASTNode: Sized + Clone + PartialEq + Debug + Sync + Send + 'static {
// Required methods
fn get_position(&self) -> &Span;
fn from_reader(
reader: &mut impl TokenReader<TSXToken, TokenStart>,
state: &mut ParsingState,
options: &ParseOptions
) -> ParseResult<Self>;
fn to_string_from_buffer<T: ToString>(
&self,
buf: &mut T,
options: &ToStringOptions,
depth: u8
);
// Provided methods
fn from_string(
script: String,
options: ParseOptions,
source: SourceId,
offset: Option<u32>
) -> ParseResult<Self> { ... }
fn to_string(&self, options: &ToStringOptions) -> String { ... }
}
Expand description
Defines common methods that would exist on a AST part include position in source, creation from reader and serializing to string from options.
TODO remove partial eq
Required Methods§
sourcefn get_position(&self) -> &Span
fn get_position(&self) -> &Span
Returns position of node as span AS IT WAS PARSED. May be Span::NULL if AST was doesn’t match anything in source
fn from_reader( reader: &mut impl TokenReader<TSXToken, TokenStart>, state: &mut ParsingState, options: &ParseOptions ) -> ParseResult<Self>
fn to_string_from_buffer<T: ToString>( &self, buf: &mut T, options: &ToStringOptions, depth: u8 )
Provided Methods§
sourcefn from_string(
script: String,
options: ParseOptions,
source: SourceId,
offset: Option<u32>
) -> ParseResult<Self>
fn from_string( script: String, options: ParseOptions, source: SourceId, offset: Option<u32> ) -> ParseResult<Self>
From string, with default impl to call abstract method from_reader
sourcefn to_string(&self, options: &ToStringOptions) -> String
fn to_string(&self, options: &ToStringOptions) -> String
Returns structure as valid string
Object Safety§
This trait is not object safe.