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
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".