pub enum ItemEnum {
Show 21 variants
Module(Module),
ExternCrate {
name: String,
rename: Option<String>,
},
Use(Use),
Union(Union),
Struct(Struct),
StructField(Type),
Enum(Enum),
Variant(Variant),
Function(Function),
Trait(Trait),
TraitAlias(TraitAlias),
Impl(Impl),
TypeAlias(TypeAlias),
Constant {
type_: Type,
const_: Constant,
},
Static(Static),
ExternType,
Macro(String),
ProcMacro(ProcMacro),
Primitive(Primitive),
AssocConst {
type_: Type,
value: Option<String>,
default_unstable: Option<Box<ProvidedDefaultUnstable>>,
},
AssocType {
generics: Generics,
bounds: Vec<GenericBound>,
type_: Option<Type>,
default_unstable: Option<Box<ProvidedDefaultUnstable>>,
},
}Expand description
Specific fields of an item.
Part of Item.
Variants§
Module(Module)
A module declaration, e.g. mod foo; or mod foo {}
ExternCrate
A crate imported via the extern crate syntax.
Fields
Use(Use)
An import of 1 or more items into scope, using the use keyword.
Union(Union)
A union declaration.
Struct(Struct)
A struct declaration.
StructField(Type)
A field of a struct.
Enum(Enum)
An enum declaration.
Variant(Variant)
A variant of a enum.
Function(Function)
A function declaration (including methods and other associated functions)
Trait(Trait)
A trait declaration.
TraitAlias(TraitAlias)
A trait alias declaration, e.g. trait Int = Add + Sub + Mul + Div;
Impl(Impl)
An impl block.
TypeAlias(TypeAlias)
A type alias declaration, e.g. type Pig = std::borrow::Cow<'static, str>;
Constant
The declaration of a constant, e.g. const GREETING: &str = "Hi :3";
Static(Static)
A declaration of a static.
ExternType
types from an extern block.
Macro(String)
A macro_rules! declarative macro. Contains a single string with the source representation of the macro with the patterns stripped.
ProcMacro(ProcMacro)
A procedural macro.
Primitive(Primitive)
A primitive type, e.g. u32.
Items of this kind only come from the core library.
AssocConst
An associated constant of a trait or a type.
Fields
value: Option<String>Inside a trait declaration, this is the default value for the associated constant,
if provided.
Inside an impl block, this is the value assigned to the associated constant,
and will always be present.
The representation is implementation-defined and not guaranteed to be representative of either the resulting value or of the source code.
const X: usize = 640 * 1024;
// ^^^^^^^^^^default_unstable: Option<Box<ProvidedDefaultUnstable>>Metadata about an unstable default value provided for the associated constant, if any.
Empty if the associated constant has no default (see ItemEnum::AssocConst::value),
or if the default value is stable.
AssocType
An associated type of a trait or a type.
Fields
bounds: Vec<GenericBound>The bounds for this associated type. e.g.
trait IntoIterator {
type Item;
type IntoIter: Iterator<Item = Self::Item>;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^
}type_: Option<Type>Inside a trait declaration, this is the default for the associated type, if provided. Inside an impl block, this is the type assigned to the associated type, and will always be present.
type X = usize;
// ^^^^^default_unstable: Option<Box<ProvidedDefaultUnstable>>Metadata about an unstable default value provided for the associated type, if any.
Empty if the associated type has no default (see ItemEnum::AssocType::type_),
or if the default value is stable.