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

pub trait PromiseTransmutableInto where
    Self::Archetype: PromiseTransmutableInto
{ type Archetype: TransmuteFrom<Self, NeglectStability>; }

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

To promise that all safe transmutations from your type into other PromiseTransmutableFrom types will remain safe in the future, simply annotate your type with #[derive(PromiseTransmutableFrom)]; e.g.:

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

Associated Types

type Archetype: TransmuteFrom<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 converting Self into another type via transmutation.

Loading content...

Implementations on Foreign Types

impl PromiseTransmutableInto for ![src]

type Archetype = Self

impl PromiseTransmutableInto for ()[src]

type Archetype = Self

impl PromiseTransmutableInto for f32[src]

type Archetype = Self

impl PromiseTransmutableInto for f64[src]

type Archetype = Self

impl PromiseTransmutableInto for i8[src]

type Archetype = Self

impl PromiseTransmutableInto for i16[src]

type Archetype = Self

impl PromiseTransmutableInto for i32[src]

type Archetype = Self

impl PromiseTransmutableInto for i64[src]

type Archetype = Self

impl PromiseTransmutableInto for i128[src]

type Archetype = Self

impl PromiseTransmutableInto for isize[src]

type Archetype = Self

impl PromiseTransmutableInto for u8[src]

type Archetype = Self

impl PromiseTransmutableInto for u16[src]

type Archetype = Self

impl PromiseTransmutableInto for u32[src]

type Archetype = Self

impl PromiseTransmutableInto for u64[src]

type Archetype = Self

impl PromiseTransmutableInto for u128[src]

type Archetype = Self

impl PromiseTransmutableInto for usize[src]

type Archetype = Self

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

type Archetype = Self

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

type Archetype = [T::Archetype; N]

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

type Archetype = *const T::Archetype

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

type Archetype = *mut T::Archetype

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

type Archetype = &'a T::Archetype

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

type Archetype = &'a mut T::Archetype

Loading content...

Implementors

Loading content...