Trait proclet::Parse

source ·
pub trait Parse<T: TokenTreeExt>: Sized + DefaultParser<T, Parser = DefaultParserImpl<T, Self>> {
    // Required method
    fn parse(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>;

    // Provided method
    fn parse_all(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>> { ... }
}
Expand description

Parse from a TokenBuf.

Required Methods§

source

fn parse(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>

Parse a value from a TokenBuf.

The referenced &TokenBuf will be modified to point past the parsed tokens on success.

Provided Methods§

source

fn parse_all(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>

Parse a value from a TokenBuf buffer, but return an error if there’s any tokens left in the buffer after parsing.

The referenced &TokenBuf will be modified to point past the parsed tokens on success. If parsing succeeds but there are tokens left in the buffer, the buffer will point to the left over tokens.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Parse<TokenTree> for TokenTree

Available on crate feature proc-macro only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Group

Available on crate feature proc-macro only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Ident

Available on crate feature proc-macro only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Literal

Available on crate feature proc-macro only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Punct

Available on crate feature proc-macro only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for TokenTree

Available on crate feature proc-macro2 only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Group

Available on crate feature proc-macro2 only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Ident

Available on crate feature proc-macro2 only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Literal

Available on crate feature proc-macro2 only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl Parse<TokenTree> for Punct

Available on crate feature proc-macro2 only.
source§

fn parse(buf: &mut &TokenBuf<TokenTree>) -> Result<Self, Error<Span>>

source§

impl<T: TokenTreeExt, X: Parse<T>> Parse<T> for Option<X>

source§

fn parse(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>

source§

impl<T: TokenTreeExt, X: Parse<T>> Parse<T> for Vec<X>

source§

fn parse(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>

Parse a non-empty vector of items. If you want to accept an empty vector, use Option<Vec<...>>::parse.

source§

impl<T: TokenTreeExt, const LENGTH: usize> Parse<T> for [T; LENGTH]

source§

fn parse(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>

source§

impl<T: TokenTreeExt, const LENGTH: usize> Parse<T> for Box<[T; LENGTH]>

source§

fn parse(buf: &mut &TokenBuf<T>) -> Result<Self, Error<T::Span>>

Implementors§

source§

impl<S: SpanExt> Parse<<S as ProcMacro>::TokenTree> for Op<S>

source§

impl<T: TokenTreeExt> Parse<T> for LiteralValue<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for ByteCharacterLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for ByteStringLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for CStringLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for CharacterLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for F32Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for F64Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for FloatLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for I8Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for I16Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for I32Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for I64Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for I128Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for IntLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for IsizeLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for StringLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for U8Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for U16Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for U32Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for U64Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for U128Literal<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt> Parse<T> for UsizeLiteral<T::Span>

Available on crate feature literal-value only.
source§

impl<T: TokenTreeExt, M: Parse<T>, D: Parse<T>> Parse<T> for Punctuated<M, D>