repr_offset::get_field_offset

Trait GetPubFieldOffset

Source
pub trait GetPubFieldOffset<FN>: GetFieldOffset<FN, Privacy = IsPublic> {
    const OFFSET: FieldOffset<Self, Self::Type, Self::Alignment> = _;
}
Expand description

An alias of the GetFieldOffset trait for public fields.

§Example

Defining a generic method for all types that have a, and c fields

use repr_offset::{
    for_examples::ReprC,
    get_field_offset::FieldType,
    privacy::{IsPublic, IsPrivate},
    tstr::TS,
    pub_off,
    Aligned, GetPubFieldOffset, ROExtAcc,
};

use std::fmt::Debug;

print_a_c(&ReprC{a: 10, b: 20, c: 30, d: 40 });

fn print_a_c<T>(this: &T)
where
    T: GetPubFieldOffset<TS!(a), Alignment = Aligned>,
    T: GetPubFieldOffset<TS!(b), Alignment = Aligned>,
    FieldType<T, TS!(a)>: Debug,
    FieldType<T, TS!(b)>: Debug,
{
    println!("{:?}", this.f_get(pub_off!(a)));
    println!("{:?}", this.f_get(pub_off!(b)));

}

Provided Associated Constants§

Source

const OFFSET: FieldOffset<Self, Self::Type, Self::Alignment> = _

The offset of the field.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<FN, Ty> GetPubFieldOffset<FN> for Ty
where Ty: GetFieldOffset<FN, Privacy = IsPublic>,