#[non_exhaustive]pub enum TypeKind {
}🔬This is a nightly-only experimental API. (
type_info)Expand description
Compile-time type information.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Tuple(Tuple)
🔬This is a nightly-only experimental API. (
type_info)Tuples.
Array(Array)
🔬This is a nightly-only experimental API. (
type_info)Arrays.
Slice(Slice)
🔬This is a nightly-only experimental API. (
type_info)Slices.
DynTrait(DynTrait)
🔬This is a nightly-only experimental API. (
type_info)Dynamic Traits.
Struct(Struct)
🔬This is a nightly-only experimental API. (
type_info)Structs.
Enum(Enum)
🔬This is a nightly-only experimental API. (
type_info)Enums.
Union(Union)
🔬This is a nightly-only experimental API. (
type_info)Unions.
Bool(Bool)
🔬This is a nightly-only experimental API. (
type_info)Primitive boolean type.
Char(Char)
🔬This is a nightly-only experimental API. (
type_info)Primitive character type.
Int(Int)
🔬This is a nightly-only experimental API. (
type_info)Primitive signed and unsigned integer type.
Float(Float)
🔬This is a nightly-only experimental API. (
type_info)Primitive floating-point type.
Str(Str)
🔬This is a nightly-only experimental API. (
type_info)String slice type.
Reference(Reference)
🔬This is a nightly-only experimental API. (
type_info)References.
Pointer(Pointer)
🔬This is a nightly-only experimental API. (
type_info)Pointers.
FnPtr(FnPtr)
🔬This is a nightly-only experimental API. (
type_info)Function pointers.
Other
🔬This is a nightly-only experimental API. (
type_info)FIXME(#146922): add all the common types
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TypeKind
impl RefUnwindSafe for TypeKind
impl Send for TypeKind
impl Sync for TypeKind
impl Unpin for TypeKind
impl UnsafeUnpin for TypeKind
impl UnwindSafe for TypeKind
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.