[][src]Trait typic::Transparent

pub unsafe trait Transparent: Type { }

Indicates a type has no internal validity requirements.

The Transparent trait is used to indicate that a compound type does not place any additional validity restrictions on its fields.

This trait can be implemented manually:

#[typic::repr(C)]
pub struct Unconstrained {
    wizz: u8,
    bang: i8,
}

unsafe impl Transparent for Unconstrained {}

let _ : Unconstrained = u16::default().transmute_into();

Or, automatically, by marking the fields pub:

#[typic::repr(C)]
pub struct Unconstrained {
    pub wizz: u8,
    pub bang: i8,
}

let _ : Unconstrained = u16::default().transmute_into();

If the fields are marked pub, the type cannot rely on any internal validity requirements, as users of the type are free to manipulate its fields via the . operator.

Implementations on Foreign Types

impl Transparent for u8[src]

impl Transparent for u16[src]

impl Transparent for u32[src]

impl Transparent for u64[src]

impl Transparent for u128[src]

impl Transparent for i8[src]

impl Transparent for i16[src]

impl Transparent for i32[src]

impl Transparent for i64[src]

impl Transparent for i128[src]

impl Transparent for isize[src]

impl Transparent for usize[src]

impl Transparent for f32[src]

impl Transparent for f64[src]

impl Transparent for AtomicU8[src]

impl Transparent for AtomicU16[src]

impl Transparent for AtomicU32[src]

impl Transparent for AtomicU64[src]

impl Transparent for AtomicUsize[src]

impl Transparent for AtomicI8[src]

impl Transparent for AtomicI16[src]

impl Transparent for AtomicI32[src]

impl Transparent for AtomicI64[src]

impl Transparent for AtomicIsize[src]

impl Transparent for NonZeroU8[src]

impl Transparent for NonZeroU16[src]

impl Transparent for NonZeroU32[src]

impl Transparent for NonZeroU64[src]

impl Transparent for NonZeroU128[src]

impl Transparent for NonZeroI8[src]

impl Transparent for NonZeroI16[src]

impl Transparent for NonZeroI32[src]

impl Transparent for NonZeroI64[src]

impl Transparent for NonZeroI128[src]

impl Transparent for NonZeroIsize[src]

impl Transparent for NonZeroUsize[src]

impl<'a, T> Transparent for &'a T[src]

impl<'a, T> Transparent for &'a mut T[src]

impl<T> Transparent for *const T[src]

impl<T> Transparent for *mut T[src]

impl<T> Transparent for AtomicPtr<T>[src]

impl<T: Type> Transparent for Cell<T>[src]

impl<T: Type> Transparent for UnsafeCell<T>[src]

impl<T> Transparent for [T; 0][src]

impl<T> Transparent for [T; 1][src]

impl<T> Transparent for [T; 2][src]

impl<T> Transparent for [T; 3][src]

impl<T> Transparent for [T; 4][src]

impl<T> Transparent for [T; 5][src]

impl<T> Transparent for [T; 6][src]

impl<T> Transparent for [T; 7][src]

impl<T> Transparent for [T; 8][src]

impl<T> Transparent for [T; 9][src]

impl<T> Transparent for [T; 10][src]

impl<T> Transparent for [T; 11][src]

impl<T> Transparent for [T; 12][src]

impl<T> Transparent for [T; 13][src]

impl<T> Transparent for [T; 14][src]

impl<T> Transparent for [T; 15][src]

impl<T> Transparent for [T; 16][src]

impl<T> Transparent for [T; 17][src]

impl<T> Transparent for [T; 18][src]

impl<T> Transparent for [T; 19][src]

impl<T> Transparent for [T; 20][src]

impl<T> Transparent for [T; 21][src]

impl<T> Transparent for [T; 22][src]

impl<T> Transparent for [T; 23][src]

impl<T> Transparent for [T; 24][src]

impl<T> Transparent for [T; 25][src]

impl<T> Transparent for [T; 26][src]

impl<T> Transparent for [T; 27][src]

impl<T> Transparent for [T; 28][src]

impl<T> Transparent for [T; 29][src]

impl<T> Transparent for [T; 30][src]

impl<T> Transparent for [T; 31][src]

impl<T> Transparent for [T; 32][src]

Loading content...

Implementors

Loading content...