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.
Types that can be copied by simply copying bits (i.e.
Types that can be transferred across thread boundaries.
Types with a constant size known at compile-time.
Types that can be safely shared between threads when aliased.
Types that can be reflected over.
Types that can be "unsized" to a dynamically sized type.