Module std::markerStable
[-] [+]
[src]
Primitive traits and marker types representing basic 'kinds' of types.
Rust types can be classified in various useful ways according to intrinsic properties of the type. These classifications, often called 'kinds', are represented as traits.
They cannot be implemented by user code, but are instead implemented by the compiler automatically for the types to which they apply.
Marker types are special types that are used with unsafe code to inform the compiler of special constraints. Marker types should only be needed when you are creating an abstraction that is implemented using unsafe code. In that case, you may want to embed some of the marker types below into your type.
Structs
`'>ContravariantLifetime | Old-style marker trait. Deprecated. |
ContravariantType | Old-style marker trait. Deprecated. |
`'>CovariantLifetime | Old-style marker trait. Deprecated. |
CovariantType | Old-style marker trait. Deprecated. |
>`'>InvariantLifetime | Old-style marker trait. Deprecated. |
InvariantType | Old-style marker trait. Deprecated. |
Managed | A type which is considered managed by the GC. This is typically embedded in other types. |
NoCopy | A type which is considered "not POD", meaning that it is not implicitly copyable. This is typically embedded in other types to ensure that they are never copied, even if they lack a destructor. |
PhantomData |
|
Traits
Copy | Types that can be copied by simply copying bits (i.e. |
MarkerTrait |
|
PhantomFn |
|
Send | Types able to be transferred across thread boundaries. |
Sized | Types with a constant size known at compile-time. |
Sync | Types that can be safely shared between threads when aliased. |