std::marker - Rust (original) (raw)

Module marker

1.0.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.

PhantomData

Zero-sized type used to mark things that “act like” they own a T.

PhantomPinned

A marker type which does not implement Unpin.

PhantomContravariantExperimental

Zero-sized type used to mark a type parameter as contravariant.

PhantomContravariantLifetimeExperimental

Zero-sized type used to mark a lifetime as contravariant.

PhantomCovariantExperimental

Zero-sized type used to mark a type parameter as covariant.

PhantomCovariantLifetimeExperimental

Zero-sized type used to mark a lifetime as covariant.

PhantomInvariantExperimental

Zero-sized type used to mark a type parameter as invariant.

PhantomInvariantLifetimeExperimental

Zero-sized type used to mark a lifetime as invariant.

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.

BikeshedGuaranteedNoDropExperimental

Marker trait for the types that are allowed in union fields, unsafe fields, and unsafe binder types.

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.

VarianceExperimental

A marker trait for phantom variance types.

varianceExperimental

Construct a variance marker; equivalent to Default::default.

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.