Type Definition repr_offset::get_field_offset::PrivFieldAlignment [−][src]
type PrivFieldAlignment<This, FN> = <This as GetFieldOffset<FN>>::Alignment;
Gets the alignment 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 alignment of fields in types from external crates.
Example
use repr_offset::{ for_examples::ReprPacked, get_field_offset::PrivFieldAlignment, tstr::TS, Aligned, Unaligned, }; // Fields in ReprC are all aligned let _: PrivFieldAlignment<Foo, TS!(x)> = Aligned; let _: PrivFieldAlignment<Foo, TS!(y)> = Aligned; let _: PrivFieldAlignment<Foo, TS!(z)> = Aligned; let _: PrivFieldAlignment<Foo, TS!(w)> = Aligned; // Fields in ReprPacked are all unaligned let _: PrivFieldAlignment<Foo, TS!(y, a)> = Unaligned; let _: PrivFieldAlignment<Foo, TS!(y, b)> = Unaligned; let _: PrivFieldAlignment<Foo, TS!(y, c)> = Unaligned; let _: PrivFieldAlignment<Foo, TS!(y, d)> = Unaligned; mod foo { use super::*; type YField = ReprPacked<&'static str, &'static [u8], char, bool>; #[repr(C)] pub struct Foo { x: u8, pub(super) y: YField, pub(crate) z: u32, pub w: u64, } repr_offset::unsafe_struct_field_offsets!{ alignment = Aligned, impl[] Foo { const OFFSET_X, x: u8; pub(super) const OFFSET_Y, y: YField; pub(crate) const OFFSET_Z, z: u32; pub const OFFSET_W, w: u64; } } } use foo::Foo;