Trait ParseBufferExt

Source
pub trait ParseBufferExt: Sealed {
    // Required methods
    fn try_parse<T: Default + Parse + Token>(&self) -> Result<Option<T>>;
    fn is_next<T: Default + Token>(&self) -> bool;
    fn parse_any_ident(&self) -> Result<Ident>;
    fn parse_wrapped_and_punctuated<T, W, P>(&self) -> Result<Punctuated<T, P>>
       where T: Parse,
             W: Default + Token + AcceptedWrapper + 'static,
             P: Default + Parse + Token;
    fn parse_maybe_wrapped_and_punctuated<T, W, P>(
        &self,
    ) -> Result<Punctuated<T, P>>
       where T: Parse,
             W: Default + Token + AcceptedWrapper + 'static,
             P: Default + Parse + Token;
    fn parse_eq_or_wrapped_and_punctuated<T, W, P>(
        &self,
    ) -> Result<Punctuated<T, P>>
       where T: Parse,
             W: Default + Token + AcceptedWrapper + 'static,
             P: Default + Parse + Token;

    // Provided method
    fn skip_any_ident(&self) -> Result<()> { ... }
}
Expand description

Extension of a syn::parse::ParseBuffer providing common function widely used by this crate for parsing.

Required Methods§

Source

fn try_parse<T: Default + Parse + Token>(&self) -> Result<Option<T>>

Tries to parse T as the next Token.

Doesn’t move ParseBuffer’s cursor if there is no T.

§Errors

If T fails to be parsed.

Source

fn is_next<T: Default + Token>(&self) -> bool

Checks whether the next Token is T.

Doesn’t move ParseBuffer’s cursor.

Source

fn parse_any_ident(&self) -> Result<Ident>

Parses the next Token as syn::Ident allowing Rust keywords, while default Parse implementation for syn::Ident disallows them.

Always moves ParseBuffer’s cursor.

§Errors

If syn::Ident fails to be parsed.

Source

fn parse_wrapped_and_punctuated<T, W, P>(&self) -> Result<Punctuated<T, P>>
where T: Parse, W: Default + Token + AcceptedWrapper + 'static, P: Default + Parse + Token,

Parses the wrapped (in a wrapper W) Tokens as T Punctuated with a P separator.

Always moves ParseBuffer’s cursor.

§Errors

If parsing Punctuated T wrapped into W fails.

Source

fn parse_maybe_wrapped_and_punctuated<T, W, P>( &self, ) -> Result<Punctuated<T, P>>
where T: Parse, W: Default + Token + AcceptedWrapper + 'static, P: Default + Parse + Token,

Checks whether the next Token is a wrapper W and if yes, then parses the wrapped Tokens as T Punctuated with a P separator. Otherwise, parses just T.

Always moves ParseBuffer’s cursor.

§Errors

If either parsing Punctuated T wrapped into W, or parsing just T, fails.

Source

fn parse_eq_or_wrapped_and_punctuated<T, W, P>( &self, ) -> Result<Punctuated<T, P>>
where T: Parse, W: Default + Token + AcceptedWrapper + 'static, P: Default + Parse + Token,

Checks whether the next Token is a wrapper W and if yes, then parses the wrapped Tokens as T Punctuated with a P separator. Otherwise, parses just T following the token::Eq.

Always moves ParseBuffer’s cursor.

§Errors

If either parsing Punctuated T wrapped into W, or parsing just T following the token::Eq, fails.

Provided Methods§

Source

fn skip_any_ident(&self) -> Result<()>

Parses the next Token as syn::Ident allowing Rust keywords, while default Parse implementation for syn::Ident disallows them. Drops the parsed Token in-place.

Always moves ParseBuffer’s cursor.

§Errors

If syn::Ident fails to be parsed.

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<'buf> ParseBuffer for ParseBuffer<'buf>

Source§

fn try_parse<T: Default + Parse + Token>(&self) -> Result<Option<T>>

Source§

fn is_next<T: Default + Token>(&self) -> bool

Source§

fn parse_any_ident(&self) -> Result<Ident>

Source§

fn parse_wrapped_and_punctuated<T, W, P>(&self) -> Result<Punctuated<T, P>>
where T: Parse, W: Default + Token + AcceptedWrapper + 'static, P: Default + Parse + Token,

Source§

fn parse_maybe_wrapped_and_punctuated<T, W, P>( &self, ) -> Result<Punctuated<T, P>>
where T: Parse, W: Default + Token + AcceptedWrapper + 'static, P: Default + Parse + Token,

Source§

fn parse_eq_or_wrapped_and_punctuated<T, W, P>( &self, ) -> Result<Punctuated<T, P>>
where T: Parse, W: Default + Token + AcceptedWrapper + 'static, P: Default + Parse + Token,

Implementors§