pub type PrivFieldType<This, FN> = <This as GetFieldOffset<FN>>::Type;
Expand description

Gets the type of a (potentially) private field in the GetFieldOffset<FN> impl for This.

Warning

Because the field may be private this can break when asking for the type of fields in types from external crates.

Example

use repr_offset::{
    get_field_offset::PrivFieldType,
    tstr::TS,
    unsafe_struct_field_offsets,
};

use foo::Foo;

let _: PrivFieldType<Foo, TS!(x)> = 3_u8;
let _: PrivFieldType<Foo, TS!(y)> = 5_u16;
let _: PrivFieldType<Foo, TS!(z)> = 8_u32;
let _: PrivFieldType<Foo, TS!(w)> = 13_u64;

mod foo {
    use super::*;

    #[repr(C)]
    pub struct Foo {
        x: u8,
        pub(super) y: u16,
        pub(crate) z: u32,
        pub w: u64,
    }

    repr_offset::unsafe_struct_field_offsets!{
        alignment = repr_offset::Aligned,
    
        impl[] Foo {
            const OFFSET_X, x: u8;
            pub(super) const OFFSET_Y, y: u16;
            pub(crate) const OFFSET_Z, z: u32;
            pub const OFFSET_W, w: u64;
        }
    }
}