Macro repr_offset::off
source · macro_rules! off { ($value:expr; $($fields:tt).+ ) => { ... }; ( $($fields:tt).+ ) => { ... }; }
Expand description
Gets the FieldOffset
for a (possibly nested) field, and an optionally passed in value.
The value argument is only necessary when the type that the fields are from can’t be inferred.
§Example
use repr_offset::{
for_examples::ReprC,
off,
FieldOffset, ROExtAcc,
};
let this = ReprC {a: 3u8, b: 5u8, c: 8u8, d: 13u8};
// The value must be passed to the macro when you want to call
// any method on the returned `FieldOffset`.
assert_eq!(off!(this; a).get(&this), &this.a);
assert_eq!(this.f_get(off!(this; b)), &this.b);
assert_eq!(this.f_get(off!(c)), &this.c);
assert_eq!(this.f_get(off!(d)), &this.d);