Trait Buffer

pub trait Buffer<'a> {
    type Token: Debug + PartialEq + Clone + TokenFactory<'a, Self::TokenAndSpan, Self::I>;
    type Next: NextTokenAndSpan<Token = Self::Token>;
    type TokenAndSpan: TokenAndSpan<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) -> (Result<Atom, Error>, 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: TokenAndSpan<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 bump(&mut self)

find next token.

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) -> (Result<Atom, Error>, 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

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_pos(&self) -> BytePos

Returns start of current token.

fn cur_span(&self) -> Span

fn last_pos(&self) -> BytePos

Returns last byte position of previous token.

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

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.

Implementors§

§

impl<'a, I> Buffer<'a> for Buffer<I>
where I: Tokens<TokenAndSpan>,

Source§

impl<'a, I: Tokens> Buffer<'a> for swc_ecma_parser::input::Buffer<I>