cl_parser::parser

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 (Param, TyKind)

Source§

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

Parses a single function parameter

Source§

impl Parse<'_> for (Vec<Param>, Vec<TyKind>)

Source§

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

Parses the parameters associated with a Function

Source§

impl Parse<'_> for EnumKind

Source§

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

Parses the various kinds of Enum

Source§

impl Parse<'_> for ExprKind

Source§

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

Parses an ExprKind at the lowest precedence level

Source§

impl Parse<'_> for ImplKind

Source§

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

Source§

impl Parse<'_> for ItemKind

Source§

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

Parses an ItemKind

See also: Item::parse

Source§

impl Parse<'_> for Literal

Source§

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

Literal = LITERAL | true | false

Source§

impl Parse<'_> for MemberKind

Source§

impl Parse<'_> for MetaKind

Source§

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

Parses data associated with a Meta attribute

Source§

impl Parse<'_> for ModuleKind

Source§

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

Parses the item list associated with a Module, if present

Source§

impl Parse<'_> for Mutability

Source§

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

Mutability = mut?

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 StmtKind

Source§

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

Parses a StmtKind

See also: Stmt::parse

Source§

impl Parse<'_> for StructKind

Source§

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

Parses the various kinds of Struct

Source§

impl Parse<'_> for TyKind

Source§

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

Parses a TyKind

See also: Ty::parse

Source§

impl Parse<'_> for UseTree

Source§

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

Source§

impl Parse<'_> for VariantKind

Source§

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

Parses the various kinds of Enum Variant

Source§

impl Parse<'_> for Visibility

Source§

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

Visibility = pub?

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 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

See also: ExprKind::parse

Source§

impl Parse<'_> for Fielder

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 (TODO) 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 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 Item

Source§

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

Parses an Item

See also: ItemKind::parse

Source§

impl Parse<'_> for Let

Source§

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

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>

Source§

impl Parse<'_> for Meta

Source§

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

Parses a single attribute

Source§

impl Parse<'_> for Module

Source§

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

Parses a Module

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 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 Struct

Source§

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

Source§

impl Parse<'_> for StructMember

Source§

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

Parses a single StructMember

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 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 Variant

Source§

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

Parses an enum Variant

Source§

impl Parse<'_> for While

Source§

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

While = while Expr Block Else?

Source§

impl Parse<'_> for Sym

Implementors§