Trait Parse

Source
pub trait Parse<'t>: Sized {
    // Required method
    fn parse(p: &mut Parser<'t>) -> PResult<Self>;
}

Required Methods§

Source

fn parse(p: &mut Parser<'t>) -> PResult<Self>

Parses a Self from the provided Parser

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 Parse<'_> for (Pattern, Vec<TyKind>)

Source§

fn parse(p: &mut Parser<'_>) -> PResult<(Pattern, Vec<TyKind>)>

Parses the parameter list of a Function

Source§

impl Parse<'_> for (Pattern, TyKind)

Source§

fn parse(p: &mut Parser<'_>) -> PResult<(Pattern, TyKind)>

Parses a single function parameter

Source§

impl Parse<'_> for AddrOf

Source§

fn parse(p: &mut Parser<'_>) -> PResult<AddrOf>

[AddrOf] = (&|&&)* [Expr]

Source§

impl Parse<'_> for Alias

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses a type alias

Source§

impl Parse<'_> for Attrs

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Attrs>

Parses an attribute set

Source§

impl Parse<'_> for Block

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Block>

[Block] = { [Stmt]* }

Source§

impl Parse<'_> for Break

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Break>

[Break] = break (unconsumed ; | [Expr])

Source§

impl Parse<'_> for Closure

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Source§

impl Parse<'_> for Const

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Const>

Source§

impl Parse<'_> for Else

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Else>

[Else]: (else [Block])?

Source§

impl Parse<'_> for Enum

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Enum>

Parses an enum definition

Source§

impl Parse<'_> for Expr

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Expr>

Parses an [Expr]

Source§

impl Parse<'_> for Fielder

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Fielder>

[Fielder] = Identifier (: [Expr])?

Source§

impl Parse<'_> for File

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses a [File]

Source§

impl Parse<'_> for For

Source§

fn parse(p: &mut Parser<'_>) -> PResult<For>

[For]: for [Pattern] in [Expr] [Block] [Else]?

Source§

impl Parse<'_> for Function

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Function>

Parses a [Function] definition

Source§

impl Parse<'_> for Generics

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Source§

impl Parse<'_> for If

Source§

fn parse(p: &mut Parser<'_>) -> PResult<If>

[If] = if [Expr] [Block] [Else]?

Source§

impl Parse<'_> for Impl

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Impl>

Source§

impl Parse<'_> for ImplKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Source§

impl Parse<'_> for Item

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses an [Item]

See also: [ItemKind::parse]

Source§

impl Parse<'_> for ItemKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses an [ItemKind]

See also: [Item::parse]

Source§

impl Parse<'_> for Let

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Let>

Source§

impl Parse<'_> for Literal

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Literal>

[Literal] = LITERAL | true | false

Source§

impl Parse<'_> for Match

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

[Match] = match [Expr] { [MatchArm],* }

Source§

impl Parse<'_> for MatchArm

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

[MatchArm] = [Pattern] => [Expr]

Source§

impl Parse<'_> for MemberKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<MemberKind>

Source§

impl Parse<'_> for Meta

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Meta>

Parses a single attribute

Source§

impl Parse<'_> for MetaKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<MetaKind>

Parses data associated with a [Meta] attribute

Source§

impl Parse<'_> for Module

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses a [Module]

Source§

impl Parse<'_> for Mutability

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Mutability>

[Mutability] = mut?

Source§

impl Parse<'_> for Path

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Path>

Parses a [Path]

See also: [PathPart::parse], [Sym::parse]

[Path] = :: RelativePath? | RelativePath
RelativePath = [PathPart] (:: [PathPart])*

Source§

impl Parse<'_> for PathPart

Source§

fn parse(p: &mut Parser<'_>) -> PResult<PathPart>

[PathPart] = super | self | Identifier

Source§

impl Parse<'_> for Pattern

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Source§

impl Parse<'_> for Quote

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Source§

impl Parse<'_> for Return

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Return>

[Return] = return (unconsumed ; | [Expr])

Source§

impl Parse<'_> for Static

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Static>

Parses a static item

Source§

impl Parse<'_> for Stmt

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Stmt>

Parses a [Stmt]

See also: [StmtKind::parse]

Source§

impl Parse<'_> for StmtKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<StmtKind>

Parses a [StmtKind]

See also: [Stmt::parse]

Source§

impl Parse<'_> for Struct

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Struct>

Source§

impl Parse<'_> for StructKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses the various kinds of Struct

Source§

impl Parse<'_> for StructMember

Source§

fn parse(p: &mut Parser<'_>) -> PResult<StructMember>

Parses a single [StructMember]

Source§

impl Parse<'_> for Sym

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Sym>

[Sym] = Identifier

Source§

impl Parse<'_> for Ty

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Parses a [Ty]

See also: [TyKind::parse]

Source§

impl Parse<'_> for TyFn

Source§

fn parse(p: &mut Parser<'_>) -> PResult<TyFn>

[TyFn] = fn [TyTuple] (-> [Ty])?

Source§

impl Parse<'_> for TyKind

Source§

fn parse(p: &mut Parser<'_>) -> PResult<TyKind>

Parses a [TyKind]

See also: [Ty::parse]

Source§

impl Parse<'_> for TyRef

Source§

fn parse(p: &mut Parser<'_>) -> PResult<TyRef>

[TyRef] = (&|&&)* [Path]

Source§

impl Parse<'_> for TyTuple

Source§

fn parse(p: &mut Parser<'_>) -> PResult<TyTuple>

[TyTuple] = ( ([Ty] ,)* [Ty]? )

Source§

impl Parse<'_> for Use

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Use>

Source§

impl Parse<'_> for UseTree

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

Source§

impl Parse<'_> for Variant

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Variant>

Parses an enum [Variant]

Source§

impl Parse<'_> for Visibility

Source§

fn parse(p: &mut Parser<'_>) -> PResult<Self>

[Visibility] = pub?

Source§

impl Parse<'_> for While

Source§

fn parse(p: &mut Parser<'_>) -> PResult<While>

[While] = while [Expr] [Block] [Else]?

Source§

impl<'t, P: Parse<'t>> Parse<'t> for Box<P>

Source§

fn parse(p: &mut Parser<'t>) -> PResult<Self>

Implementors§