Macro rkyv::project_tuple [−][src]
macro_rules! project_tuple { ($tuple:ident: $ty:ty => $index:tt) => { ... }; ($tuple:ident: $tuple_ty:ty => $index:tt: $index_ty:path) => { ... }; }
Expand description
Maps a mutable MaybeUninit
tuple reference to a mutable MaybeUninit
index reference.
This is primarily used to succintly resolve the fields of tuples into the output for
resolve()
.
Example
use rkyv::project_tuple; use core::mem::MaybeUninit; let result = unsafe { let mut result = MaybeUninit::<(i32, u8)>::uninit(); let out = &mut result; project_tuple!(out: (i32, u8) => 0: i32).as_mut_ptr().write(42); project_tuple!(out: (i32, u8) => 1: u8).as_mut_ptr().write(10); result.assume_init() }; assert_eq!(result.0, 42); assert_eq!(result.1, 10);