FromContext

Trait FromContext 

Source
pub trait FromContext<C, E: Extractability = Direct>: Sized {
    type Error: Into<BoxError>;

    // Required method
    fn from_context(context: &C) -> Result<Self, Self::Error>;

    // Provided method
    fn from_context_always(context: &C) -> Self
       where Self: FromContext<C, E, Error = Infallible> { ... }
}
Expand description

Extract data from the given context.

Required Associated Types§

Required Methods§

Source

fn from_context(context: &C) -> Result<Self, Self::Error>

Provided Methods§

Source

fn from_context_always(context: &C) -> Self
where Self: FromContext<C, E, Error = Infallible>,

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 FromContext<ConfigureContext, Transitive> for Rc<RootReactor>

Source§

impl FromContext<ConfigureContext, Transitive> for Rc<dyn Clock>

Source§

impl FromContext<ConfigureContext, Transitive> for Rc<dyn Host>

Source§

impl FromContext<ConfigureContext, Transitive> for Rc<dyn SharedData>

Source§

impl FromContext<FilterContext> for Rc<HttpReactor>

Source§

impl<C> FromContext<C> for ()

Source§

impl<C> FromContext<C> for Rc<UserAgent>

Source§

type Error = Infallible

Source§

fn from_context(_context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0> FromContext<C> for (T0,)
where T0: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1> FromContext<C> for (T0, T1)
where T0: FromContext<C>, T1: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2> FromContext<C> for (T0, T1, T2)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3> FromContext<C> for (T0, T1, T2, T3)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4> FromContext<C> for (T0, T1, T2, T3, T4)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5> FromContext<C> for (T0, T1, T2, T3, T4, T5)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>, T10: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>, T10: FromContext<C>, T11: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>, T10: FromContext<C>, T11: FromContext<C>, T12: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>, T10: FromContext<C>, T11: FromContext<C>, T12: FromContext<C>, T13: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>, T10: FromContext<C>, T11: FromContext<C>, T12: FromContext<C>, T13: FromContext<C>, T14: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> FromContext<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T0: FromContext<C>, T1: FromContext<C>, T2: FromContext<C>, T3: FromContext<C>, T4: FromContext<C>, T5: FromContext<C>, T6: FromContext<C>, T7: FromContext<C>, T8: FromContext<C>, T9: FromContext<C>, T10: FromContext<C>, T11: FromContext<C>, T12: FromContext<C>, T13: FromContext<C>, T14: FromContext<C>, T15: FromContext<C>,

Source§

type Error = Box<dyn Error>

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<T, C> FromContext<C> for Option<T>
where T: FromContext<C>,

Source§

type Error = Infallible

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Source§

impl<T, C> FromContext<C> for Result<T, T::Error>
where T: FromContext<C>,

Source§

type Error = Infallible

Source§

fn from_context(context: &C) -> Result<Self, Self::Error>

Implementors§

Source§

impl FromContext<ConfigureContext> for Clock

Source§

impl FromContext<ConfigureContext> for Configuration

Source§

impl FromContext<ConfigureContext, Transitive> for GrpcClient

Source§

impl<C> FromContext<C> for HttpClient
where Rc<dyn Host>: FromContext<C, Error = Infallible>, Rc<RootReactor>: FromContext<C, Error = Infallible>,

Source§

impl<C> FromContext<C> for ConcurrentSharedData
where Rc<dyn Clock>: FromContext<C, Error = Infallible>, Rc<dyn SharedData>: FromContext<C, Error = Infallible>,

Source§

impl<C> FromContext<C> for StreamProperties
where Rc<dyn Host>: FromContext<C, Error = Infallible>, Rc<RootReactor>: FromContext<C, Error = Infallible>,

Stream properties can be injected for any context.

Source§

impl<D> FromContext<ResponseContext<D>, Transitive> for RequestData<D>
where D: 'static,

Source§

impl<D, T> FromContext<ResponseContext<D>> for T

Source§

impl<D, T> FromContext<ResponseContext<D>, Transitive> for T

Source§

impl<T> FromContext<RequestContext> for T

Source§

impl<T> FromContext<RequestContext, Transitive> for T

Source§

impl<T> FromContext<ConfigureContext> for T

Source§

impl<T> FromContext<FilterContext> for T

Source§

impl<T> FromContext<FilterContext, Transitive> for T