Module marker

1.6.0 · Source
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.

Re-exports§

pub use self::variance::PhantomContravariant;Experimental
pub use self::variance::PhantomContravariantLifetime;Experimental
pub use self::variance::PhantomCovariant;Experimental
pub use self::variance::PhantomCovariantLifetime;Experimental
pub use self::variance::PhantomInvariant;Experimental
pub use self::variance::PhantomInvariantLifetime;Experimental
pub use self::variance::Variance;Experimental
pub use self::variance::variance;Experimental

Modules§

variance 🔒 Experimental

Macros§

marker_impls 🔒 Experimental
Implements a given marker trait for multiple types at the same time.

Structs§

PhantomData
Zero-sized type used to mark things that “act like” they own a T.
PhantomPinned
A marker type which does not implement Unpin.

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.
UnsafeUnpin 🔒
Used to determine whether a type contains any UnsafePinned (or PhantomPinned) internally, but not through an indirection. This affects, for example, whether we emit noalias metadata for &mut T or not.
BikeshedGuaranteedNoDrop 👻 Experimental
Marker trait for the types that are allowed in union fields and unsafe binder types.
CoercePointeeValidated 👻 Experimental
A trait that is implemented for ADTs with derive(CoercePointee) so that the compiler can enforce the derive impls are valid post-expansion, since the derive has stricter requirements than if the impls were written by hand.
ConstParamTy_Experimental
A marker for types which can be used as types of const generic parameters.
DestructExperimental
A marker for types that can be dropped.
DiscriminantKindExperimental
Compiler-internal trait used to indicate the type of enum discriminants.
FnPtrExperimental
A common trait implemented by all function pointers.
FreezeExperimental
Used to determine whether a type contains any UnsafeCell internally, but not through an indirection. This affects, for example, whether a static 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.
PointerLikeExperimental
A marker for pointer-like types.
StructuralPartialEqExperimental
Required trait for constants used in pattern matches.
TupleExperimental
A marker for tuple types.
UnsizeExperimental
Types that can be “unsized” to a dynamically-sized type.
UnsizedConstParamTyExperimental
A marker for types which can be used as types of const generic parameters.

Derive Macros§

Copy
Derive macro generating an impl of the trait Copy.
CoercePointeeExperimental
Derive macro that makes a smart pointer usable with trait objects.
ConstParamTyExperimental
Derive macro generating an impl of the trait ConstParamTy.
UnsizedConstParamTyExperimental
Derive macro generating an impl of the trait ConstParamTy.