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.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ItemEnum
impl<'de> Deserialize<'de> for ItemEnum
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ItemEnum
impl StructuralPartialEq for ItemEnum
Auto Trait Implementations§
impl Freeze for ItemEnum
impl RefUnwindSafe for ItemEnum
impl Send for ItemEnum
impl Sync for ItemEnum
impl Unpin for ItemEnum
impl UnsafeUnpin for ItemEnum
impl UnwindSafe for ItemEnum
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 304 bytes
Size for each variant:
Module: 40 bytesExternCrate: 56 bytesUse: 72 bytesUnion: 112 bytesStruct: 112 bytesStructField: 88 bytesEnum: 112 bytesVariant: 88 bytesFunction: 216 bytesTrait: 136 bytesTraitAlias: 80 bytesImpl: 304 bytesTypeAlias: 136 bytesConstant: 144 bytesStatic: 120 bytesExternType: 0 bytesMacro: 32 bytesProcMacro: 40 bytesPrimitive: 56 bytesAssocConst: 120 bytesAssocType: 168 bytes