pub trait Tokens: Tokens<TokenAndSpan> {
// Required methods
fn clone_token_value(&self) -> Option<TokenValue>;
fn take_token_value(&mut self) -> Option<TokenValue>;
fn get_token_value(&self) -> Option<&TokenValue>;
fn set_token_value(&mut self, token_value: Option<TokenValue>);
fn scan_jsx_token(
&mut self,
allow_multiline_jsx_text: bool,
) -> Option<TokenAndSpan>;
fn scan_jsx_open_el_terminal_token(&mut self) -> Option<TokenAndSpan>;
fn rescan_jsx_open_el_terminal_token(
&mut self,
reset: BytePos,
) -> Option<TokenAndSpan>;
fn rescan_jsx_token(
&mut self,
allow_multiline_jsx_text: bool,
reset: BytePos,
) -> Option<TokenAndSpan>;
fn scan_jsx_identifier(&mut self, start: BytePos) -> TokenAndSpan;
fn scan_jsx_attribute_value(&mut self) -> Option<TokenAndSpan>;
fn rescan_template_token(
&mut self,
start: BytePos,
start_with_back_tick: bool,
) -> Option<TokenAndSpan>;
}
Expand description
Clone should be cheap if you are parsing typescript because typescript syntax requires backtracking.
Required Methods§
fn clone_token_value(&self) -> Option<TokenValue>
fn take_token_value(&mut self) -> Option<TokenValue>
fn get_token_value(&self) -> Option<&TokenValue>
fn set_token_value(&mut self, token_value: Option<TokenValue>)
fn scan_jsx_token( &mut self, allow_multiline_jsx_text: bool, ) -> Option<TokenAndSpan>
fn scan_jsx_open_el_terminal_token(&mut self) -> Option<TokenAndSpan>
fn rescan_jsx_open_el_terminal_token( &mut self, reset: BytePos, ) -> Option<TokenAndSpan>
fn rescan_jsx_token( &mut self, allow_multiline_jsx_text: bool, reset: BytePos, ) -> Option<TokenAndSpan>
fn scan_jsx_identifier(&mut self, start: BytePos) -> TokenAndSpan
fn scan_jsx_attribute_value(&mut self) -> Option<TokenAndSpan>
fn rescan_template_token( &mut self, start: BytePos, start_with_back_tick: bool, ) -> Option<TokenAndSpan>
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.