pub trait Buffer<'a> {
type Token: Debug + PartialEq + Clone + TokenFactory<'a, Self::TokenAndSpan, Self::I>;
type Next: NextTokenAndSpan<Token = Self::Token>;
type TokenAndSpan: TokenAndSpanTrait<Token = Self::Token>;
type I: Tokens<Self::TokenAndSpan>;
Show 45 methods
// Required methods
fn new(lexer: Self::I) -> Self;
fn iter(&self) -> &Self::I;
fn iter_mut(&mut self) -> &mut Self::I;
fn set_cur(&mut self, token: Self::TokenAndSpan);
fn next(&self) -> Option<&Self::Next>;
fn set_next(&mut self, token: Option<Self::Next>);
fn next_mut(&mut self) -> &mut Option<Self::Next>;
fn cur(&self) -> &Self::Token;
fn get_cur(&self) -> &Self::TokenAndSpan;
fn prev_span(&self) -> Span;
fn peek<'b>(&'b mut self) -> Option<&'b Self::Token>
where Self::TokenAndSpan: 'b;
fn dump_cur(&self) -> String;
fn bump(&mut self);
fn expect_word_token_and_bump(&mut self) -> Atom;
fn expect_number_token_and_bump(&mut self) -> (f64, Atom);
fn expect_string_token_and_bump(&mut self) -> (Atom, Atom);
fn expect_bigint_token_and_bump(&mut self) -> (Box<BigInt>, Atom);
fn expect_regex_token_and_bump(&mut self) -> (Atom, Atom);
fn expect_template_token_and_bump(&mut self) -> (LexResult<Atom>, Atom);
fn expect_error_token_and_bump(&mut self) -> Error;
fn expect_jsx_name_token_and_bump(&mut self) -> Atom;
fn expect_jsx_text_token_and_bump(&mut self) -> (Atom, Atom);
fn expect_shebang_token_and_bump(&mut self) -> Atom;
// Provided methods
fn store(&mut self, token: Self::Token) { ... }
fn had_line_break_before_cur(&self) -> bool { ... }
fn has_linebreak_between_cur_and_peeked(&mut self) -> bool { ... }
fn cut_lshift(&mut self) { ... }
fn merge_lt_gt(&mut self) { ... }
fn is(&self, expected: &Self::Token) -> bool { ... }
fn eat(&mut self, expected: &Self::Token) -> bool { ... }
fn cur_pos(&self) -> BytePos { ... }
fn cur_span(&self) -> Span { ... }
fn last_pos(&self) -> BytePos { ... }
fn get_ctx(&self) -> Context { ... }
fn update_ctx(&mut self, f: impl FnOnce(&mut Context)) { ... }
fn set_ctx(&mut self, ctx: Context) { ... }
fn syntax(&self) -> SyntaxFlags { ... }
fn target(&self) -> EsVersion { ... }
fn set_expr_allowed(&mut self, allow: bool) { ... }
fn set_next_regexp(&mut self, start: Option<BytePos>) { ... }
fn token_context<'b>(&'b self) -> &'b TokenContexts
where Self::I: 'b { ... }
fn token_context_mut<'b>(&'b mut self) -> &'b mut TokenContexts
where Self::I: 'b { ... }
fn set_token_context(&mut self, c: TokenContexts) { ... }
fn end_pos(&self) -> BytePos { ... }
fn token_flags(&self) -> TokenFlags { ... }
}
Required Associated Types§
type Token: Debug + PartialEq + Clone + TokenFactory<'a, Self::TokenAndSpan, Self::I>
type Next: NextTokenAndSpan<Token = Self::Token>
type TokenAndSpan: TokenAndSpanTrait<Token = Self::Token>
type I: Tokens<Self::TokenAndSpan>
Required Methods§
fn new(lexer: Self::I) -> Self
fn iter(&self) -> &Self::I
fn iter_mut(&mut self) -> &mut Self::I
fn set_cur(&mut self, token: Self::TokenAndSpan)
fn next(&self) -> Option<&Self::Next>
fn set_next(&mut self, token: Option<Self::Next>)
fn next_mut(&mut self) -> &mut Option<Self::Next>
fn cur(&self) -> &Self::Token
fn get_cur(&self) -> &Self::TokenAndSpan
fn prev_span(&self) -> Span
fn peek<'b>(&'b mut self) -> Option<&'b Self::Token>where
Self::TokenAndSpan: 'b,
fn dump_cur(&self) -> String
fn expect_word_token_and_bump(&mut self) -> Atom
fn expect_number_token_and_bump(&mut self) -> (f64, Atom)
fn expect_string_token_and_bump(&mut self) -> (Atom, Atom)
fn expect_bigint_token_and_bump(&mut self) -> (Box<BigInt>, Atom)
fn expect_regex_token_and_bump(&mut self) -> (Atom, Atom)
fn expect_template_token_and_bump(&mut self) -> (LexResult<Atom>, Atom)
fn expect_error_token_and_bump(&mut self) -> Error
fn expect_jsx_name_token_and_bump(&mut self) -> Atom
fn expect_jsx_text_token_and_bump(&mut self) -> (Atom, Atom)
fn expect_shebang_token_and_bump(&mut self) -> Atom
Provided Methods§
fn store(&mut self, token: Self::Token)
fn had_line_break_before_cur(&self) -> bool
Sourcefn has_linebreak_between_cur_and_peeked(&mut self) -> bool
fn has_linebreak_between_cur_and_peeked(&mut self) -> bool
This returns true on eof.
fn cut_lshift(&mut self)
fn merge_lt_gt(&mut self)
fn is(&self, expected: &Self::Token) -> bool
fn eat(&mut self, expected: &Self::Token) -> bool
fn cur_span(&self) -> Span
fn get_ctx(&self) -> Context
fn update_ctx(&mut self, f: impl FnOnce(&mut Context))
fn set_ctx(&mut self, ctx: Context)
fn syntax(&self) -> SyntaxFlags
fn target(&self) -> EsVersion
fn set_expr_allowed(&mut self, allow: bool)
fn set_next_regexp(&mut self, start: Option<BytePos>)
fn token_context<'b>(&'b self) -> &'b TokenContextswhere
Self::I: 'b,
fn token_context_mut<'b>(&'b mut self) -> &'b mut TokenContextswhere
Self::I: 'b,
fn set_token_context(&mut self, c: TokenContexts)
fn end_pos(&self) -> BytePos
fn token_flags(&self) -> TokenFlags
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.