Lines Matching defs:try_transmute_ref
665 /// fn try_transmute_ref<Src, Dst>(src: &Src) -> Result<&Dst, ValidityError<&Src, Dst>>
685 /// `try_transmute_ref!` supports transmuting between `Sized` types, between
692 /// # use zerocopy::try_transmute_ref;
695 /// let dst: &[u8] = try_transmute_ref!(src).unwrap();
710 /// assert_eq!(try_transmute_ref!(&0u8), Ok(&false));
713 /// assert_eq!(try_transmute_ref!(&1u8), Ok(&true));
717 /// try_transmute_ref!(&2u8),
739 /// let dst: &Dst = try_transmute_ref!(src).unwrap();
751 bench = "try_transmute_ref",
767 macro_rules! try_transmute_ref {
779 // `try_transmute_ref` in the `else` branch.
783 // `try_transmute_ref` (which requires `Dst: Sized`) because
795 t.try_transmute_ref()
1523 // Test that memory is transmuted with `try_transmute_ref` as expected.
1526 let x: Result<&[[u8; 2]; 4], _> = try_transmute_ref!(array_of_bools);
1528 let x: Result<&[bool; 8], _> = try_transmute_ref!(array_of_arrays);
1534 let x: Result<&[[u8; 2]; 4], _> = try_transmute_ref!(array_of_bools);
1538 // Test that `try_transmute_ref!` supports decreasing alignment.
1541 let x: Result<&[u8; 8], _> = try_transmute_ref!(&u);
1547 let y: Result<&u8, _> = try_transmute_ref!(&mut x);
1553 let x: Result<&Nkl<[[u8; 2]; 4]>, _> = try_transmute_ref!(&array_of_nkl_u8s);
1560 let x: Result<&[[u8; 2]], _> = try_transmute_ref!(&array_of_u8s);
1568 let x: Result<&SliceDst<U16, U16>, _> = try_transmute_ref!(slice_dst_of_u8s);