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§
Sourcefn try_parse<T: Default + Parse + Token>(&self) -> Result<Option<T>>
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.
Sourcefn is_next<T: Default + Token>(&self) -> bool
fn is_next<T: Default + Token>(&self) -> bool
Checks whether the next Token is T.
Doesn’t move ParseBuffer’s cursor.
Sourcefn parse_any_ident(&self) -> Result<Ident>
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.
Sourcefn parse_wrapped_and_punctuated<T, W, P>(&self) -> Result<Punctuated<T, P>>
fn parse_wrapped_and_punctuated<T, W, P>(&self) -> Result<Punctuated<T, P>>
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.
Sourcefn parse_maybe_wrapped_and_punctuated<T, W, P>(
&self,
) -> Result<Punctuated<T, P>>
fn parse_maybe_wrapped_and_punctuated<T, W, P>( &self, ) -> Result<Punctuated<T, P>>
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.
Sourcefn parse_eq_or_wrapped_and_punctuated<T, W, P>(
&self,
) -> Result<Punctuated<T, P>>
fn parse_eq_or_wrapped_and_punctuated<T, W, P>( &self, ) -> Result<Punctuated<T, P>>
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§
Sourcefn skip_any_ident(&self) -> Result<()>
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.