Expand description
Primitive traits and types representing basic properties of types.
Rust types can be classified in various useful ways according to their intrinsic properties. These classifications are represented as traits.
Structs§
- Phantom
Data - Zero-sized type used to mark things that “act like” they own a
T
. - Phantom
Pinned - A marker type which does not implement
Unpin
. - Phantom
Contravariant Experimental - Zero-sized type used to mark a type parameter as contravariant.
- Phantom
Contravariant Lifetime Experimental - Zero-sized type used to mark a lifetime as contravariant.
- Phantom
Covariant Experimental - Zero-sized type used to mark a type parameter as covariant.
- Phantom
Covariant Lifetime Experimental - Zero-sized type used to mark a lifetime as covariant.
- Phantom
Invariant Experimental - Zero-sized type used to mark a type parameter as invariant.
- Phantom
Invariant Lifetime Experimental - Zero-sized type used to mark a lifetime as invariant.
Traits§
- Copy
- Types whose values can be duplicated simply by copying bits.
- Send
- Types that can be transferred across thread boundaries.
- Sized
- Types with a constant size known at compile time.
- Sync
- Types for which it is safe to share references between threads.
- Unpin
- Types that do not require any pinning guarantees.
- Bikeshed
Guaranteed NoDrop Experimental - Marker trait for the types that are allowed in union fields, unsafe fields, and unsafe binder types.
- Const
Param Ty_ Experimental - A marker for types which can be used as types of
const
generic parameters. - Destruct
Experimental - A marker for types that can be dropped.
- Discriminant
Kind Experimental - Compiler-internal trait used to indicate the type of enum discriminants.
- FnPtr
Experimental - A common trait implemented by all function pointers.
- Freeze
Experimental - Used to determine whether a type contains
any
UnsafeCell
internally, but not through an indirection. This affects, for example, whether astatic
of that type is placed in read-only static memory or writable static memory. This can be used to declare that a constant with a generic type will not contain interior mutability, and subsequently allow placing the constant behind references. - Pointer
Like Experimental - A marker for pointer-like types.
- Structural
Partial Eq Experimental - Required trait for constants used in pattern matches.
- Tuple
Experimental - A marker for tuple types.
- Unsize
Experimental - Types that can be “unsized” to a dynamically-sized type.
- Unsized
Const Param Ty Experimental - A marker for types which can be used as types of
const
generic parameters. - Variance
Experimental - A marker trait for phantom variance types.
Functions§
- variance
Experimental - Construct a variance marker; equivalent to
Default::default
.
Derive Macros§
- Copy
- Derive macro generating an impl of the trait
Copy
. - Coerce
Pointee Experimental - Derive macro that makes a smart pointer usable with trait objects.
- Const
Param Ty Experimental - Derive macro generating an impl of the trait
ConstParamTy
. - Unsized
Const Param Ty Experimental - Derive macro generating an impl of the trait
ConstParamTy
.