Module redox::marker [] [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.

Structs

PhantomData

PhantomData<T> allows you to describe that a type acts as if it stores a value of type T, even though it does not. This allows you to inform the compiler about certain safety properties of your code.

Traits

Copy

Types that can be copied by simply copying bits (i.e. memcpy).

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.

Reflect [Unstable]

A marker trait indicates a type that can be reflected over. This trait is implemented for all types. Its purpose is to ensure that when you write a generic function that will employ reflection, that must be reflected (no pun intended) in the generic bounds of that function. Here is an example:

Unsize [Unstable]

Types that can be "unsized" to a dynamically sized type.