#![cfg(feature = "derive")] // Required for derives on `SliceDst` #![allow(dead_code)]
//! Our UI test framework, built on the `trybuild` crate, does not support //! testing for post-monomorphization errors. Instead, we use doctests, which //! are able to test for post-monomorphization errors.
/// We require that the alignment of the destination type is not larger than the /// alignment of the source type. /// /// ```compile_fail,E0080 /// let increase_alignment: &u16 = zerocopy::transmute_ref!(&[0u8; 2]); /// ``` /// /// ```compile_fail,E0080 /// let mut src = [0u8; 2]; /// let increase_alignment: &mut u16 = zerocopy::transmute_mut!(&mut src); /// ``` enum TransmuteRefMutAlignmentIncrease {}
/// We require that the size of the destination type is not larger than the size /// of the source type. /// /// ```compile_fail,E0080 /// let increase_size: &[u8; 2] = zerocopy::transmute_ref!(&0u8); /// ``` /// /// ```compile_fail,E0080 /// let mut src = 0u8; /// let increase_size: &mut [u8; 2] = zerocopy::transmute_mut!(&mut src); /// ``` enum TransmuteRefMutSizeIncrease {}
/// We require that the size of the destination type is not smaller than the /// size of the source type. /// /// ```compile_fail,E0080 /// let decrease_size: &u8 = zerocopy::transmute_ref!(&[0u8; 2]); /// ``` /// /// ```compile_fail,E0080 /// let mut src = [0u8; 2]; /// let decrease_size: &mut u8 = zerocopy::transmute_mut!(&mut src); /// ``` enum TransmuteRefMutSizeDecrease {}
/// It's not possible in the general case to increase the trailing slice offset /// during a reference transmutation - some pointer metadata values would not be /// supportable, and so such a transmutation would be fallible. /// /// ```compile_fail,E0080 /// use zerocopy::doctests::SliceDst; /// let src: &SliceDst<u8, u8> = SliceDst::new(); /// let increase_offset: &SliceDst<[u8; 2], u8> = zerocopy::transmute_ref!(src); /// ``` /// /// ```compile_fail,E0080 /// use zerocopy::doctests::SliceDst; /// let src: &mut SliceDst<u8, u8> = SliceDst::new_mut(); /// let increase_offset: &mut SliceDst<[u8; 2], u8> = zerocopy::transmute_mut!(src); /// ``` enum TransmuteRefMutDstOffsetIncrease {}
/// Reference transmutes are not possible when the difference between the source /// and destination types' trailing slice offsets is not a multiple of the /// destination type's trailing slice element size. /// /// ```compile_fail,E0080 /// use zerocopy::doctests::SliceDst; /// let src: &SliceDst<[u8; 3], [u8; 2]> = SliceDst::new(); /// let _: &SliceDst<[u8; 2], [u8; 2]> = zerocopy::transmute_ref!(src); /// ``` /// /// ```compile_fail,E0080 /// use zerocopy::doctests::SliceDst; /// let src: &mut SliceDst<[u8; 3], [u8; 2]> = SliceDst::new_mut(); /// let _: &mut SliceDst<[u8; 2], [u8; 2]> = zerocopy::transmute_mut!(src); /// ``` enum TransmuteRefMutDstOffsetNotMultiple {}
/// Reference transmutes are not possible when the source's trailing slice /// element size is not a multiple of the destination's. /// /// ```compile_fail,E0080 /// use zerocopy::doctests::SliceDst; /// let src: &SliceDst<(), [u8; 3]> = SliceDst::new(); /// let _: &SliceDst<(), [u8; 2]> = zerocopy::transmute_ref!(src); /// ``` /// /// ```compile_fail,E0080 /// use zerocopy::doctests::SliceDst; /// let src: &mut SliceDst<(), [u8; 3]> = SliceDst::new_mut(); /// let _: &mut SliceDst<(), [u8; 2]> = zerocopy::transmute_mut!(src); /// ``` enum TransmuteRefMutDstElemSizeNotMultiple {}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-08-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.