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,
local: LocalToStringInformation
);
// Provided methods
fn from_string(script: String, options: ParseOptions) -> ParseResult<Self> { ... }
fn from_string_with_options(
script: String,
options: ParseOptions,
offset: Option<u32>
) -> ParseResult<(Self, ParsingState)> { ... }
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, local: LocalToStringInformation )
Provided Methods§
sourcefn from_string(script: String, options: ParseOptions) -> ParseResult<Self>
fn from_string(script: String, options: ParseOptions) -> ParseResult<Self>
From string, with default impl to call abstract method from_reader
fn from_string_with_options( script: String, options: ParseOptions, offset: Option<u32> ) -> ParseResult<(Self, ParsingState)>
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.