#[non_exhaustive]
pub enum Item {
Show 16 variants
Const(ItemConst),
Enum(ItemEnum),
ExternCrate(ItemExternCrate),
Fn(ItemFn),
ForeignMod(ItemForeignMod),
Impl(ItemImpl),
Macro(ItemMacro),
Mod(ItemMod),
Static(ItemStatic),
Struct(ItemStruct),
Trait(ItemTrait),
TraitAlias(ItemTraitAlias),
Type(ItemType),
Union(ItemUnion),
Use(ItemUse),
Verbatim(TokenStream),
}
Expand description
Things that can appear directly inside of a module or scope.
Syntax tree enum
This type is a syntax tree enum.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Const(ItemConst)
A constant item: const MAX: u16 = 65535
.
Enum(ItemEnum)
An enum definition: enum Foo<A, B> { A(A), B(B) }
.
ExternCrate(ItemExternCrate)
An extern crate
item: extern crate serde
.
Fn(ItemFn)
A free-standing function: fn process(n: usize) -> Result<()> { ... }
.
ForeignMod(ItemForeignMod)
A block of foreign items: extern "C" { ... }
.
Impl(ItemImpl)
An impl block providing trait or associated items: impl<A> Trait for Data<A> { ... }
.
Macro(ItemMacro)
A macro invocation, which includes macro_rules!
definitions.
Mod(ItemMod)
A module or module declaration: mod m
or mod m { ... }
.
Static(ItemStatic)
A static item: static BIKE: Shed = Shed(42)
.
Struct(ItemStruct)
A struct definition: struct Foo<A> { x: A }
.
Trait(ItemTrait)
A trait definition: pub trait Iterator { ... }
.
TraitAlias(ItemTraitAlias)
A trait alias: pub trait SharableIterator = Iterator + Sync
.
Type(ItemType)
A type alias: type Result<T> = std::result::Result<T, MyError>
.
Union(ItemUnion)
A union definition: union Foo<A, B> { x: A, y: B }
.
Use(ItemUse)
A use declaration: use std::collections::HashMap
.
Verbatim(TokenStream)
Tokens forming an item not interpreted by Syn.