Trait TokenStreamExt

Source
pub trait TokenStreamExt:
    Default
    + Extend<TokenTree>
    + Extend<TokenStream>
    + IntoIterator<Item = TokenTree>
    + FromIterator<TokenTree>
    + Sized {
    // Required methods
    fn grouped(self, delimiter: Delimiter) -> Group;
    fn split_puncts(
        self,
        puncts: impl AsRef<[u8]>,
    ) -> Option<(Self, ParseIter<Self::IntoIter>)>;

    // Provided methods
    fn push(&mut self, tt: TokenTree) -> &mut Self { ... }
    fn add(&mut self, stream: TokenStream) -> &mut Self { ... }
    fn walk<F>(self, f: F) -> Self
       where F: FnMut(TokenTree) -> TokenTree { ... }
}

Required Methods§

Source

fn grouped(self, delimiter: Delimiter) -> Group

Source

fn split_puncts( self, puncts: impl AsRef<[u8]>, ) -> Option<(Self, ParseIter<Self::IntoIter>)>

Split TokenStream to predicate false and true

Like "+-,-+".split_puncts(",") -> ("+-", "-+")

Provided Methods§

Source

fn push(&mut self, tt: TokenTree) -> &mut Self

Source

fn add(&mut self, stream: TokenStream) -> &mut Self

Source

fn walk<F>(self, f: F) -> Self
where F: FnMut(TokenTree) -> TokenTree,

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.

Implementations on Foreign Types§

Source§

impl TokenStreamExt for TokenStream

Source§

fn grouped(self, delimiter: Delimiter) -> Group

Source§

fn split_puncts( self, puncts: impl AsRef<[u8]>, ) -> Option<(Self, ParseIter<Self::IntoIter>)>

Implementors§