FieldGetter

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.

Implementors§

Source§

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

Source§

type Value = Value

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, Tag> FieldGetter<Context, Tag> for ChainGetters<ε>

Source§

type Value = Context

Source§

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

Source§

type Value = Field

Source§

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

Source§

type Value = ValueB