Skip to content

Commit 6d1e9b0

Browse files
authored
Support unsized try_transmute_{ref,mut}! (#2944)
Support: - Sized to sized - Sized to unsized - Unsized to unsized gherrit-pr-id: Gdf81e39c9f13236c2c2bad3bfbd2bb931e73b706
1 parent e574d06 commit 6d1e9b0

File tree

58 files changed

+757
-1004
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+757
-1004
lines changed

src/doctests.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ impl<T: FromBytes + IntoBytes, U: FromBytes + IntoBytes> SliceDst<T, U> {
4646
/// let mut src = [0u8; 2];
4747
/// let increase_alignment: &mut u16 = zerocopy::transmute_mut!(&mut src);
4848
/// ```
49+
///
50+
/// ```compile_fail,E0080
51+
/// let increase_alignment: &u16 = zerocopy::try_transmute_ref!(&[0u8; 2]).unwrap();
52+
/// ```
53+
///
54+
/// ```compile_fail,E0080
55+
/// let mut src = [0u8; 2];
56+
/// let increase_alignment: &mut u16 = zerocopy::try_transmute_mut!(&mut src).unwrap();
57+
/// ```
4958
enum TransmuteRefMutAlignmentIncrease {}
5059

5160
/// We require that the size of the destination type is not larger than the size
@@ -59,6 +68,15 @@ enum TransmuteRefMutAlignmentIncrease {}
5968
/// let mut src = 0u8;
6069
/// let increase_size: &mut [u8; 2] = zerocopy::transmute_mut!(&mut src);
6170
/// ```
71+
///
72+
/// ```compile_fail,E0080
73+
/// let increase_size: &[u8; 2] = zerocopy::try_transmute_ref!(&0u8).unwrap();
74+
/// ```
75+
///
76+
/// ```compile_fail,E0080
77+
/// let mut src = 0u8;
78+
/// let increase_size: &mut [u8; 2] = zerocopy::try_transmute_mut!(&mut src).unwrap();
79+
/// ```
6280
enum TransmuteRefMutSizeIncrease {}
6381

6482
/// We require that the size of the destination type is not smaller than the
@@ -72,6 +90,15 @@ enum TransmuteRefMutSizeIncrease {}
7290
/// let mut src = [0u8; 2];
7391
/// let decrease_size: &mut u8 = zerocopy::transmute_mut!(&mut src);
7492
/// ```
93+
///
94+
/// ```compile_fail,E0080
95+
/// let decrease_size: &u8 = zerocopy::try_transmute_ref!(&[0u8; 2]).unwrap();
96+
/// ```
97+
///
98+
/// ```compile_fail,E0080
99+
/// let mut src = [0u8; 2];
100+
/// let decrease_size: &mut u8 = zerocopy::try_transmute_mut!(&mut src).unwrap();
101+
/// ```
75102
enum TransmuteRefMutSizeDecrease {}
76103

77104
/// It's not possible in the general case to increase the trailing slice offset

0 commit comments

Comments
 (0)