[][src]Trait core_extensions::MarkerType

pub unsafe trait MarkerType: Copy + Sized {
    const MTVAL: Self;
    fn markertype_ref<'a>() -> &'a Self
    where
        Self: 'a
, { ... }
fn markertype_val() -> Self { ... } }

Represents a zero-sized marker type .

Types implementing this trait are zero-sized and can safely be stored in any #[repr(C)] type without changing their layout.

Safety

Implementors of this trait must ensure:

-that the type is zero-sized,

-that it has an alignment of 1.

-that the type is trivially constructible,eg:by implementing ::std::default::Default.

The easiest way to enforce the requirements of being zero-sized and having an alignment of 1 is to have structs composed entirely of MarkerType fields (ie:VariantPhantom , PhantomData , () ).

Associated Constants

const MTVAL: Self

The value of Self.

Loading content...

Provided methods

fn markertype_ref<'a>() -> &'a Self where
    Self: 'a, 

Constructs a reference to Self, this is possible because all references to zero sized types are valid.

fn markertype_val() -> Self

Constructs Self,this is possible because Self implements MarkerType.

Loading content...

Implementations on Foreign Types

impl<T: ?Sized> MarkerType for PhantomData<T>[src]

impl MarkerType for ()[src]

impl<T> MarkerType for [T; 0] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 1] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 2] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 3] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 4] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 5] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 6] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 7] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 8] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 9] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 10] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 11] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 12] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 13] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 14] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 15] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 16] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 17] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 18] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 19] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 20] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 21] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 22] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 23] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 24] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 25] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 26] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 27] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 28] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 29] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 30] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 31] where
    T: MarkerType
[src]

impl<T> MarkerType for [T; 32] where
    T: MarkerType
[src]

impl<A> MarkerType for (A,) where
    A: MarkerType
[src]

impl<A, B> MarkerType for (A, B) where
    A: MarkerType,
    B: MarkerType
[src]

impl<A, B, C> MarkerType for (A, B, C) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType
[src]

impl<A, B, C, D> MarkerType for (A, B, C, D) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType
[src]

impl<A, B, C, D, E> MarkerType for (A, B, C, D, E) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType
[src]

impl<A, B, C, D, E, F> MarkerType for (A, B, C, D, E, F) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType
[src]

impl<A, B, C, D, E, F, G> MarkerType for (A, B, C, D, E, F, G) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType
[src]

impl<A, B, C, D, E, F, G, H> MarkerType for (A, B, C, D, E, F, G, H) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I> MarkerType for (A, B, C, D, E, F, G, H, I) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J> MarkerType for (A, B, C, D, E, F, G, H, I, J) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J, K> MarkerType for (A, B, C, D, E, F, G, H, I, J, K) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType,
    K: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L> MarkerType for (A, B, C, D, E, F, G, H, I, J, K, L) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType,
    K: MarkerType,
    L: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> MarkerType for (A, B, C, D, E, F, G, H, I, J, K, L, M) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType,
    K: MarkerType,
    L: MarkerType,
    M: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> MarkerType for (A, B, C, D, E, F, G, H, I, J, K, L, M, N) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType,
    K: MarkerType,
    L: MarkerType,
    M: MarkerType,
    N: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> MarkerType for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType,
    K: MarkerType,
    L: MarkerType,
    M: MarkerType,
    N: MarkerType,
    O: MarkerType
[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> MarkerType for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) where
    A: MarkerType,
    B: MarkerType,
    C: MarkerType,
    D: MarkerType,
    E: MarkerType,
    F: MarkerType,
    G: MarkerType,
    H: MarkerType,
    I: MarkerType,
    J: MarkerType,
    K: MarkerType,
    L: MarkerType,
    M: MarkerType,
    N: MarkerType,
    O: MarkerType,
    P: MarkerType
[src]

Loading content...

Implementors

impl MarkerType for False[src]

impl MarkerType for True[src]

Loading content...