diff options
| author | Alex Saveau <saveau.alexandre@gmail.com> | 2022-10-16 14:53:51 -0700 |
|---|---|---|
| committer | Alex Saveau <saveau.alexandre@gmail.com> | 2022-10-16 17:51:38 -0700 |
| commit | 1a1ebb080f181cef75533dc829ec571745b1f174 (patch) | |
| tree | 93737dd75b28274ab0cc96e9f1ab0280f0e6ab1e | |
| parent | 8be3ce9056d17f822704b8994f60668adf180fe8 (diff) | |
| download | rust-1a1ebb080f181cef75533dc829ec571745b1f174.tar.gz rust-1a1ebb080f181cef75533dc829ec571745b1f174.zip | |
Make transpose const and inline
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
| -rw-r--r-- | library/core/src/lib.rs | 1 | ||||
| -rw-r--r-- | library/core/src/mem/maybe_uninit.rs | 6 |
2 files changed, 5 insertions, 2 deletions
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index da84763836e..2fd8180f8b2 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -217,6 +217,7 @@ #![feature(unboxed_closures)] #![feature(unsized_fn_params)] #![feature(asm_const)] +#![feature(const_transmute_copy)] // // Target features: #![feature(arm_target_feature)] diff --git a/library/core/src/mem/maybe_uninit.rs b/library/core/src/mem/maybe_uninit.rs index 2ae96367628..efad9a9391b 100644 --- a/library/core/src/mem/maybe_uninit.rs +++ b/library/core/src/mem/maybe_uninit.rs @@ -1297,7 +1297,8 @@ impl<T, const N: usize> MaybeUninit<[T; N]> { /// let data: [MaybeUninit<u8>; 1000] = MaybeUninit::uninit().transpose(); /// ``` #[unstable(feature = "maybe_uninit_uninit_array_transpose", issue = "96097")] - pub fn transpose(self) -> [MaybeUninit<T>; N] { + #[inline] + pub const fn transpose(self) -> [MaybeUninit<T>; N] { // SAFETY: T and MaybeUninit<T> have the same layout unsafe { super::transmute_copy(&ManuallyDrop::new(self)) } } @@ -1316,7 +1317,8 @@ impl<T, const N: usize> [MaybeUninit<T>; N] { /// let data: MaybeUninit<[u8; 1000]> = data.transpose(); /// ``` #[unstable(feature = "maybe_uninit_uninit_array_transpose", issue = "96097")] - pub fn transpose(self) -> MaybeUninit<[T; N]> { + #[inline] + pub const fn transpose(self) -> MaybeUninit<[T; N]> { // SAFETY: T and MaybeUninit<T> have the same layout unsafe { super::transmute_copy(&ManuallyDrop::new(self)) } } |
