pub(crate) enum ConstantKind {
TyConst {
expr: String,
},
Anonymous {
body: BodyId,
},
Extern {
def_id: DefId,
},
Local {
def_id: DefId,
body: BodyId,
},
}
Variants
TyConst
Fields
expr: String
This 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: BodyId
A 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: DefId
A constant from a different crate.
Local
const FOO: u32 = ...;
Implementations
Trait Implementations
sourceimpl Clone for ConstantKind
impl Clone for ConstantKind
sourcefn clone(&self) -> ConstantKind
fn clone(&self) -> ConstantKind
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for ConstantKind
impl Debug for ConstantKind
sourceimpl Hash for ConstantKind
impl Hash for ConstantKind
sourceimpl PartialEq<ConstantKind> for ConstantKind
impl PartialEq<ConstantKind> for ConstantKind
sourcefn eq(&self, other: &ConstantKind) -> bool
fn eq(&self, other: &ConstantKind) -> bool
impl Eq for ConstantKind
impl StructuralEq for ConstantKind
impl StructuralPartialEq for ConstantKind
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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