Crate unrest_tmp_syn [] [src]

Modules

delimited
tokens

Discrete tokens that can be parsed out by synom.

Structs

Abi
AngleBracketedParameterData

A path like Foo<'a, T>

Attribute

Doc-comments are promoted to attributes that have is_sugared_doc = true

BareFnArg

An argument in a function type.

BareFnTy
BodyEnum

It's an enum.

BodyStruct

It's a struct.

BoundLifetimes

A set of bound lifetimes, e.g. for<'a, 'b, 'c>

DeriveInput

Struct or enum sent to a proc_macro_derive macro.

Expr

An expression.

ExprAddrOf

A referencing operation (&a or &mut a)

ExprArray

An array, e.g. [a, b, c, d].

ExprAssign

An assignment (a = foo())

ExprAssignOp

An assignment with an operator

ExprBinary

A binary operation, e.g. a + b, a * b.

ExprBlock

A block ({ ... } or unsafe { ... })

ExprBox

A box x expression.

ExprBreak

A break, with an optional label to break, and an optional expression

ExprCall

A function call.

ExprCast

A cast, e.g. foo as f64.

ExprCatch

A catch expression.

ExprClosure

A closure (for example, move |a, b, c| a + b + c)

ExprContinue

A continue, with an optional label

ExprField

Access of a named struct field (obj.foo)

ExprForLoop

A for loop, with an optional label.

ExprGroup

No-op: used solely so we can pretty-print faithfully

ExprIf

An if block, with an optional else block

ExprIfLet

An if let expression with an optional else block

ExprInPlace

E.g. 'place <- val' or in place { val }.

ExprIndex

An indexing operation (foo[2])

ExprLoop

Conditionless loop with an optional label.

ExprMatch

A match block.

ExprMethodCall

A method call (x.foo::<Bar, Baz>(a, b, c, d))

ExprParen

No-op: used solely so we can pretty-print faithfully

ExprPath

Variable reference, possibly containing :: and/or type parameters, e.g. foo::bar::.

ExprRange

A range (1..2, 1.., ..2, 1...2, 1..., ...2)

ExprRepeat

An array literal constructed from one repeated element.

ExprRet

A return, with an optional value to be returned

ExprStruct

A struct literal expression.

ExprTry

expr?

ExprTup

A tuple, e.g. (a, b, c, d).

ExprTupField

Access of an unnamed field of a struct or tuple-struct

ExprType

A type ascription, e.g. foo: f64.

ExprUnary

A unary operation, e.g. !x, *x.

ExprWhile

A while loop, with an optional label

ExprWhileLet

A while-let loop, with an optional label.

Field

A field of a struct or enum variant.

Generics

Represents lifetimes and type parameters attached to a declaration of a function, enum, trait, etc.

Ident

A word of Rust code, such as a keyword or variable name.

ImplGenerics

Returned by Generics::split_for_impl.

Lifetime
LifetimeDef

A lifetime definition, e.g. 'a: 'b+'c+'d

Lit
Mac

Represents a macro invocation. The Path indicates which macro is being invoked, and the vector of token-trees contains the source of the macro invocation.

MetaItemList

List meta item.

MetaNameValue

Name-value meta item.

MutTy
ParenthesizedParameterData

A path like Foo(A,B) -> C

ParseError
Path

A "Path" is essentially Rust's notion of a name.

PathSegment

A segment of a path: an identifier, an optional lifetime, and a set of types.

PathTokens
PolyTraitRef
QSelf

The explicit Self type in a "qualified path". The actual path, including the trait and the associated item, is stored separately. position represents the index of the associated item qualified with this Self type.

Span
TokenTree
Turbofish

Returned by TyGenerics::as_turbofish.

TyArray

A fixed length array ([T; n])

TyBareFn

A bare function (e.g. fn(usize) -> bool)

TyGenerics

Returned by Generics::split_for_impl.

TyGroup

No-op: kept solely so that we can pretty-print faithfully

TyImplTrait

An impl Bound1 + Bound2 + Bound3 type where Bound is a trait or a lifetime.

TyInfer

TyKind::Infer means the type should be inferred instead of it having been specified. This can appear anywhere in a type.

TyNever

The never type (!)

TyParam

A generic type parameter, e.g. T: Into<String>.

TyParen

No-op; kept solely so that we can pretty-print faithfully

TyPath

A path (module::module::...::Type), optionally "qualified", e.g. <Vec<T> as SomeTrait>::SomeType.

TyPtr

A raw pointer (*const T or *mut T)

TyRptr

A reference (&'a T or &'a mut T)

TySlice

A variable-length array ([T])

TyTraitObject

A trait object type Bound1 + Bound2 + Bound3 where Bound is a trait or a lifetime.

TyTup

A tuple ((A, B, C, D, ...))

TypeBinding

Bind a type to an associated type: A=Foo.

Variant

An enum variant.

VisCrate

Crate-visible, i.e. pub(crate).

VisInherited

Inherited, i.e. private.

VisPublic

Public, i.e. pub.

VisRestricted

Restricted, e.g. pub(self) or pub(super) or pub(in some::module).

WhereBoundPredicate

A type binding, e.g. for<'c> Foo: Send+Clone+'c

WhereClause

A where clause in a definition

WhereEqPredicate

An equality predicate (unsupported)

WhereRegionPredicate

A lifetime predicate, e.g. 'a: 'b+'c

Enums

AttrStyle

Distinguishes between Attributes that decorate items and Attributes that are contained as statements within items. These two cases need to be distinguished for pretty-printing.

BinOp
Body

Body of a derived struct or enum.

ExprKind
FunctionRetTy
LitKind
MetaItem

A compile-time attribute item.

Mutability
NestedMetaItem

Possible values inside of compile-time attribute lists.

PathParameters

Parameters of a path segment.

TraitBoundModifier

A modifier on a bound, currently this is only used for ?Sized, where the modifier is Maybe. Negative bounds should also be handled here.

Ty

The different kinds of types recognized by the compiler

TyParamBound

The AST represents all type param bounds as types. typeck::collect::compute_bounds matches these against the "special" built-in traits (see middle::lang_items) and detects Copy, Send and Sync.

UnOp
Unsafety
VariantData

Data stored within an enum variant or struct.

Visibility

Visibility level of an item.

WherePredicate

A single predicate in a where clause

Functions

parse

Parse tokens of source code into the chosen syn data type.

parse_str

Parse a string of Rust code into the chosen syn data type.