Module marker

Source
Expand description

Marker types for invariance, store side-effects, and base types.

Structs§

PhantomStoreEffect
A zero-sized phantom marker for indicating that the containing type has a side effect when storing (e.g. it has an invariant pointer).

Traits§

BaseType
Invariant
Indicates that a type is invariant and thus can be stored in an object.
StoreCopy
The type may move between objects without side effects. Notably, this is not implemented for invariant pointers or types that contain them, since an invariant pointer may reference an object’s Foreign Object Table. This is a little restrictive (technically intra-object pointers are safe to move intra-object), but it’s the best we can do at compile-time.