[−][src]Struct rfc::core::convert::transmute::options::NeglectStability
Neglect the static stability check.
By default, TransmuteFrom and TransmuteInto require that the layouts of the source and destination types are SemVer-stable. The NeglectStability option disables this requirement.
Prior to the adoption of the stability declaration traits, crate authors documented the layout guarantees of their types with doc comments. The TransmuteFrom and TransmuteInto traits and methods may be used with these types by requesting that the stability check is neglected; for instance:
fn serialize<W: Write>(val : LibraryType, dst: W) -> std::io::Result<()> where LibraryType: TransmuteInto<[u8; size_of::<LibraryType>()], NeglectStability> { ... }
Neglecting stability over-eagerly cannot cause unsoundness or unsafety. For this reason, it is the only transmutation option available on the safe methods transmute_from
and transmute_into
. However, neglecting stability over-eagerly may cause your code to cease compiling if the authors of the source and destination types make changes that affect their layout.
By using the NeglectStability
option to transmute types you do not own, you are committing to ensure that your reliance on these types' layouts is consistent with their documented stability guarantees.
Trait Implementations
impl SafeTransmuteOptions for NeglectStability
[src]
impl TransmuteOptions for NeglectStability
[src]
Auto Trait Implementations
impl RefUnwindSafe for NeglectStability
impl Send for NeglectStability
impl Sync for NeglectStability
impl Unpin for NeglectStability
impl UnwindSafe for NeglectStability
Blanket Implementations
impl<Lhs, Rhs, Neglect> AlignEq<Rhs, Neglect> for Lhs where
Lhs: AlignLtEq<Rhs, ()>,
Neglect: TransmuteOptions,
Rhs: AlignLtEq<Lhs, ()>,
[src]
Lhs: AlignLtEq<Rhs, ()>,
Neglect: TransmuteOptions,
Rhs: AlignLtEq<Lhs, ()>,
impl<Lhs, Rhs, Neglect> AlignLtEq<Rhs, Neglect> for Lhs where
Neglect: TransmuteOptions,
&'a [Lhs; 0]: for<'a> TransmuteFrom<&'a [Rhs; 0], Neglect>,
[src]
Neglect: TransmuteOptions,
&'a [Lhs; 0]: for<'a> TransmuteFrom<&'a [Rhs; 0], Neglect>,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<Src, Dst, Neglect> CastInto<Dst, Neglect> for Src where
Dst: CastFrom<Src, Neglect>,
Neglect: CastOptions,
[src]
Dst: CastFrom<Src, Neglect>,
Neglect: CastOptions,
fn cast_into(self) -> Dst where
Self: Sized,
Dst: Sized,
Neglect: SafeCastOptions,
[src]
Self: Sized,
Dst: Sized,
Neglect: SafeCastOptions,
unsafe fn unsafe_cast_into(self) -> Dst where
Self: Sized,
Dst: Sized,
Neglect: CastOptions,
[src]
Self: Sized,
Dst: Sized,
Neglect: CastOptions,
impl<Neglect> CastOptions for Neglect where
Neglect: SliceCastOptions,
[src]
Neglect: SliceCastOptions,
impl<Neglect> CastOptions for Neglect where
Neglect: VecCastOptions,
[src]
Neglect: VecCastOptions,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<Neglect> SafeCastOptions for Neglect where
Neglect: SafeSliceCastOptions,
[src]
Neglect: SafeSliceCastOptions,
impl<Neglect> SafeCastOptions for Neglect where
Neglect: SafeVecCastOptions,
[src]
Neglect: SafeVecCastOptions,
impl<Neglect> SafeSliceCastOptions for Neglect where
Neglect: SafeTransmuteOptions,
[src]
Neglect: SafeTransmuteOptions,
impl<Neglect> SafeVecCastOptions for Neglect where
Neglect: SafeTransmuteOptions,
[src]
Neglect: SafeTransmuteOptions,
impl<Neglect> SliceCastOptions for Neglect where
Neglect: TransmuteOptions,
[src]
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<T> TransmuteFrom<T, NeglectStability> for T
[src]
fn transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_from(src: Src) -> Self where
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
[src]
Src: Sized,
Self: Sized,
Neglect: TransmuteOptions,
impl<Src, Dst, Neglect> TransmuteInto<Dst, Neglect> for Src where
Dst: TransmuteFrom<Src, Neglect> + ?Sized,
Neglect: TransmuteOptions,
Src: ?Sized,
[src]
Dst: TransmuteFrom<Src, Neglect> + ?Sized,
Neglect: TransmuteOptions,
Src: ?Sized,
fn transmute_into(Self) -> Dst where
Neglect: SafeTransmuteOptions,
[src]
Neglect: SafeTransmuteOptions,
unsafe fn unsafe_transmute_into(Self) -> Dst where
Neglect: TransmuteOptions,
[src]
Neglect: TransmuteOptions,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<Neglect> VecCastOptions for Neglect where
Neglect: TransmuteOptions,
[src]
Neglect: TransmuteOptions,