pub(crate) enum ConstantKind {
TyConst {
expr: Box<str>,
},
Path {
path: Box<str>,
},
Anonymous {
body: BodyId,
},
Extern {
def_id: DefId,
},
Local {
def_id: DefId,
body: BodyId,
},
Infer,
}
Variants§
TyConst
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
.
Path
A constant that is just a path (i.e., referring to a const param, free const, etc.).
Anonymous
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
A constant from a different crate.
Local
const FOO: u32 = ...;
Infer
An inferred constant as in [10u8; _]
.
Implementations§
Source§impl ConstantKind
impl ConstantKind
Trait Implementations§
Source§impl Clone for ConstantKind
impl Clone for ConstantKind
Source§fn clone(&self) -> ConstantKind
fn clone(&self) -> ConstantKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ConstantKind
impl Debug for ConstantKind
Source§impl FromClean<ConstantKind> for Constant
impl FromClean<ConstantKind> for Constant
fn from_clean(constant: ConstantKind, renderer: &JsonRenderer<'_>) -> Self
Source§impl Hash for ConstantKind
impl Hash for ConstantKind
Source§impl PartialEq for ConstantKind
impl PartialEq for ConstantKind
impl Eq for ConstantKind
impl StructuralPartialEq for ConstantKind
Auto Trait Implementations§
impl Freeze for ConstantKind
impl RefUnwindSafe for ConstantKind
impl Send for ConstantKind
impl Sync for ConstantKind
impl Unpin for ConstantKind
impl UnwindSafe for ConstantKind
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
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: 24 bytes
Size for each variant:
TyConst
: 20 bytesPath
: 20 bytesAnonymous
: 8 bytesExtern
: 8 bytesLocal
: 16 bytesInfer
: 0 bytes