Module repr_offset::ext [−][src]
Extension traits that use FieldOffset
parameters to operate on fields.
These are the extension traits for each kind of type:
-
*const T
and*mut T
:ROExtRawAcc
andROExtRawOps
-
*mut T
:ROExtRawMutAcc
andROExtRawMutOps
Imports
Here is the code to import all of the extension traits for convenience:
use repr_offset::{ROExtAcc, ROExtOps, ROExtRawAcc, ROExtRawMutAcc, ROExtRawOps, ROExtRawMutOps};
Examples
Initializing Types
use repr_offset::{ for_examples::ReprC, off, ROExtRawMutOps, }; use std::mem::MaybeUninit; type This = ReprC<String, Vec<u8>, usize, Option<char>>; let this = unsafe{ let mut uninit = MaybeUninit::<This>::uninit(); initialize_this(uninit.as_mut_ptr()); uninit.assume_init() }; assert_eq!(this.a, "foo"); assert_eq!(this.b, [3, 5, 8]); assert_eq!(this.c, 13); assert_eq!(this.d, Some('_')); /// Initializes `this` /// /// # Safety /// /// The passed in pointer must point to an aligned, allocated `This` (including on the stack). unsafe fn initialize_this(this: *mut This) { this.f_write(off!(a), "foo".to_string()); this.f_write(off!(b), vec![3, 5, 8]); this.f_write(off!(c), 13_usize); this.f_write(off!(d), Some('_')); }
Traits
ROExtAcc | Extension trait for (mutable) references to access fields generically,
where the field is determined by a |
ROExtOps | Extension trait for (mutable) references to do generic field operations,
where the field is determined by a |
ROExtRawAcc | Extension trait for raw pointers to access fields generically,
where the field is determined by a |
ROExtRawMutAcc | Extension trait for mutable raw pointers to access fields generically,
where the field is determined by a |
ROExtRawMutOps | Extension trait for mutable raw pointers to do generic field operations,
where the field is determined by a |
ROExtRawOps | Extension trait for raw pointers to do generic field operations,
where the field is determined by a |