File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -1284,3 +1284,40 @@ impl<T> MaybeUninit<T> {
12841284        } 
12851285    } 
12861286} 
1287+ 
1288+ impl < T ,  const  N :  usize >  MaybeUninit < [ T ;  N ] >  { 
1289+     /// Transposes a `MaybeUninit<[T; N]>` into a `[MaybeUninit<T>; N]`. 
1290+ /// 
1291+ /// # Examples 
1292+ /// 
1293+ /// ``` 
1294+ /// #![feature(maybe_uninit_uninit_array_transpose)] 
1295+ /// # use std::mem::MaybeUninit; 
1296+ /// 
1297+ /// let data: [MaybeUninit<u8>; 1000] = MaybeUninit::uninit().transpose(); 
1298+ /// ``` 
1299+ #[ unstable( feature = "maybe_uninit_uninit_array_transpose" ,  issue = "96097" ) ]  
1300+     pub  fn  transpose ( self )  -> [ MaybeUninit < T > ;  N ]  { 
1301+         // SAFETY: T and MaybeUninit<T> have the same layout 
1302+         unsafe  {  super :: transmute_copy ( & ManuallyDrop :: new ( self ) )  } 
1303+     } 
1304+ } 
1305+ 
1306+ impl < T ,  const  N :  usize >  [ MaybeUninit < T > ;  N ]  { 
1307+     /// Transposes a `[MaybeUninit<T>; N]` into a `MaybeUninit<[T; N]>`. 
1308+ /// 
1309+ /// # Examples 
1310+ /// 
1311+ /// ``` 
1312+ /// #![feature(maybe_uninit_uninit_array_transpose)] 
1313+ /// # use std::mem::MaybeUninit; 
1314+ /// 
1315+ /// let data = [MaybeUninit::<u8>::uninit(); 1000]; 
1316+ /// let data: MaybeUninit<[u8; 1000]> = data.transpose(); 
1317+ /// ``` 
1318+ #[ unstable( feature = "maybe_uninit_uninit_array_transpose" ,  issue = "96097" ) ]  
1319+     pub  fn  transpose ( self )  -> MaybeUninit < [ T ;  N ] >  { 
1320+         // SAFETY: T and MaybeUninit<T> have the same layout 
1321+         unsafe  {  super :: transmute_copy ( & ManuallyDrop :: new ( self ) )  } 
1322+     } 
1323+ } 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments