Trait FieldGetter

Source
pub trait FieldGetter<Context, Tag> {
    type Value;

    // Required method
    fn get_field(context: &Context, _tag: PhantomData<Tag>) -> &Self::Value;
}

Required Associated Types§

Required Methods§

Source

fn get_field(context: &Context, _tag: PhantomData<Tag>) -> &Self::Value

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.

Implementations on Foreign Types§

Source§

impl<Context, Tag, Field> FieldGetter<Context, Tag> for UseContext
where Context: HasField<Tag, Value = Field>,

Source§

type Value = Field

Source§

fn get_field(context: &Context, _tag: PhantomData<Tag>) -> &Self::Value

Implementors§

Source§

impl<Context, OutTag, Tag, Value> FieldGetter<Context, OutTag> for UseField<Tag>
where Context: HasField<Tag, Value = Value>,

Source§

type Value = Value

Source§

impl<Context, OutTag, Tag, Value> FieldGetter<Context, OutTag> for UseFieldRef<Tag, Value>
where Context: HasField<Tag, Value: AsRef<Value> + 'static>,

Source§

type Value = Value

Source§

impl<Context, Tag> FieldGetter<Context, Tag> for ChainGetters<Nil>

Source§

type Value = Context

Source§

impl<Context, Tag, Getter, RestGetters, ValueA, ValueB> FieldGetter<Context, Tag> for ChainGetters<Cons<Getter, RestGetters>>
where Getter: FieldMapper<Context, Tag, Value = ValueA>, ChainGetters<RestGetters>: FieldGetter<ValueA, Tag, Value = ValueB>,

Source§

type Value = ValueB