1 2 3 4 5 6 7 8 9 10
#[macro_export] macro_rules! offset_of { ($base:path, $field:ident) => {{ #[allow(unused_unsafe)] unsafe { let b: $base = std::mem::zeroed(); (&b.$field as *const _ as isize) - (&b as *const _ as isize) } }}; }
1 2 3 4 5 6 7 8 9 10
#[macro_export] macro_rules! offset_of { ($base:path, $field:ident) => {{ #[allow(unused_unsafe)] unsafe { let b: $base = std::mem::zeroed(); (&b.$field as *const _ as isize) - (&b as *const _ as isize) } }}; }