[][src]Trait rfc::core::convert::transmute::stability::PromiseTransmutableFrom

pub trait PromiseTransmutableFrom where
    Self::Archetype: PromiseTransmutableFrom
{ type Archetype: TransmuteInto<Self, NeglectStability>; }

Promise that a type may be stably transmuted from other types.

To promise that all transmutations of any PromiseTransmutableInto type into your type that are currently safe will remain so in the future, simply annotate your type with #[derive(PromiseTransmutableFrom)].

For instance, this:

#[derive(PromiseTransmutableFrom)]
#[repr(C)]
pub struct Foo(pub Bar, pub Baz);

Associated Types

type Archetype: TransmuteInto<Self, NeglectStability>

A type which exemplifies the greatest extent to which Self might change in non-breaking crate releases, insofar that those changes might affect instantiating Self via transmutation.

Loading content...

Implementations on Foreign Types

impl PromiseTransmutableFrom for ![src]

type Archetype = Self

impl PromiseTransmutableFrom for ()[src]

type Archetype = Self

impl PromiseTransmutableFrom for f32[src]

type Archetype = Self

impl PromiseTransmutableFrom for f64[src]

type Archetype = Self

impl PromiseTransmutableFrom for i8[src]

type Archetype = Self

impl PromiseTransmutableFrom for i16[src]

type Archetype = Self

impl PromiseTransmutableFrom for i32[src]

type Archetype = Self

impl PromiseTransmutableFrom for i64[src]

type Archetype = Self

impl PromiseTransmutableFrom for i128[src]

type Archetype = Self

impl PromiseTransmutableFrom for isize[src]

type Archetype = Self

impl PromiseTransmutableFrom for u8[src]

type Archetype = Self

impl PromiseTransmutableFrom for u16[src]

type Archetype = Self

impl PromiseTransmutableFrom for u32[src]

type Archetype = Self

impl PromiseTransmutableFrom for u64[src]

type Archetype = Self

impl PromiseTransmutableFrom for u128[src]

type Archetype = Self

impl PromiseTransmutableFrom for usize[src]

type Archetype = Self

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

type Archetype = Self

impl<T, const N: usize> PromiseTransmutableFrom for [T; N] where
    T: PromiseTransmutableFrom,
    [T::Archetype; N]: TransmuteInto<Self, NeglectStability> + PromiseTransmutableFrom
[src]

type Archetype = [T::Archetype; N]

impl<T: ?Sized> PromiseTransmutableFrom for *const T where
    T: PromiseTransmutableFrom,
    *const T::Archetype: TransmuteInto<Self, NeglectStability> + PromiseTransmutableFrom
[src]

type Archetype = *const T::Archetype

impl<T: ?Sized> PromiseTransmutableFrom for *mut T where
    T: PromiseTransmutableFrom,
    *mut T::Archetype: TransmuteInto<Self, NeglectStability> + PromiseTransmutableFrom
[src]

type Archetype = *mut T::Archetype

impl<'a, T: ?Sized> PromiseTransmutableFrom for &'a T where
    T: PromiseTransmutableFrom,
    &'a T::Archetype: TransmuteInto<&'a T, NeglectStability> + PromiseTransmutableFrom
[src]

type Archetype = &'a T::Archetype

impl<'a, T: ?Sized> PromiseTransmutableFrom for &'a mut T where
    T: PromiseTransmutableFrom,
    &'a mut T::Archetype: TransmuteInto<&'a mut T, NeglectStability> + PromiseTransmutableFrom
[src]

type Archetype = &'a mut T::Archetype

Loading content...

Implementors

Loading content...