# Module std::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.

## 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

- ConstParamTy 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.
- DiscriminantKind Experimental
  Compiler-internal trait used to indicate the type of enum discriminants.
- FnPtr Experimental
  A common trait implemented by all function pointers.
- PointerLike Experimental
  A marker for pointer-like types.
- StructuralEq Experimental
  Required trait for constants used in pattern matches.
- StructuralPartialEq 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.
- 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 can be safely moved after being pinned.

## Derive Macros

- ConstParamTy Experimental
  Derive macro generating an impl of the trait `ConstParamTy`.
- Copy
  Derive macro generating an impl of the trait `Copy`.