Struct Stability

Source
pub struct Stability;
Expand description

Neglect statically guaranteeing that the source and destination types have stable in-memory representations.

By default, Typic statically requires that the layouts of the source and destination types are part of their API guarantee. Library authors indicate this for their types by implementing a marker trait. This trait should only be implementable for types where Rust makes guarantees about their layout (e.g., #[repr(C)]).

This is the only option available for safe transmutations.

Typic will still reject transmutes between types where the layouts of the source or destination types are compiler UB (e.g., most repr(Rust) types).

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> StableTransmuteInto<U> for T
where T: TransmuteInto<U>,

Source§

impl<T, U, O> TransmuteInto<U, O> for T

Source§

fn transmute_into(self) -> U

Reinterprets the bits of self as type U.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U, O> UnsafeTransmuteInto<U, O> for T

Source§

unsafe fn unsafe_transmute_into(self) -> U

Reinterprets the bits of from as type Self.
Source§

impl<O> UnsafeTransmuteOptions for O

Source§

type Alignment = Static

Source§

type Transparency = Enforced

Source§

type Stability = <O as TransmuteOptions>::Stability

Source§

type Validity = AlwaysValid