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", so this trait is not object safe.