pub(crate) enum ConstantKind {
TyConst {
expr: String,
},
Anonymous {
body: BodyId,
},
Extern {
def_id: DefId,
},
Local {
def_id: DefId,
body: BodyId,
},
}Variants
TyConst
Fields
expr: StringThis is the wrapper around ty::Const for a non-local constant. Because it doesn’t have a
BodyId, we need to handle it on its own.
Note that ty::Const includes generic parameters, and may not always be uniquely identified
by a DefId. So this field must be different from Extern.
Anonymous
Fields
body: BodyIdA constant (expression) that’s not an item or associated item. These are usually found nested inside types (e.g., array lengths) or expressions (e.g., repeat counts), and also used to define explicit discriminant values for enum variants.
Extern
Fields
def_id: DefIdA constant from a different crate.
Local
const FOO: u32 = ...;
Implementations
Trait Implementations
This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
Auto Trait Implementations
impl RefUnwindSafe for ConstantKind
impl Send for ConstantKind
impl Sync for ConstantKind
impl Unpin for ConstantKind
impl UnwindSafe for ConstantKind
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more
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: 32 bytes
Size for each variant:
TyConst: 28 bytesAnonymous: 8 bytesExtern: 8 bytesLocal: 16 bytes