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§
fn from_context(context: &C) -> Result<Self, Self::Error>
Provided Methods§
fn from_context_always(context: &C) -> Selfwhere
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>
impl FromContext<ConfigureContext, Transitive> for Rc<RootReactor>
type Error = Infallible
fn from_context(context: &ConfigureContext) -> Result<Self, Self::Error>
Source§impl FromContext<ConfigureContext, Transitive> for Rc<dyn Clock>
impl FromContext<ConfigureContext, Transitive> for Rc<dyn Clock>
type Error = Infallible
fn from_context(context: &ConfigureContext) -> Result<Self, Self::Error>
Source§impl FromContext<ConfigureContext, Transitive> for Rc<dyn Host>
impl FromContext<ConfigureContext, Transitive> for Rc<dyn Host>
type Error = Infallible
fn from_context(context: &ConfigureContext) -> Result<Self, Self::Error>
type Error = Infallible
fn from_context(context: &ConfigureContext) -> Result<Self, Self::Error>
Source§impl FromContext<FilterContext> for Rc<HttpReactor>
impl FromContext<FilterContext> for Rc<HttpReactor>
type Error = Infallible
fn from_context(context: &FilterContext) -> Result<Self, Self::Error>
Source§impl<C> FromContext<C> for ()
impl<C> FromContext<C> for ()
type Error = Infallible
fn from_context(_: &C) -> Result<Self, Self::Error>
Source§impl<C> FromContext<C> for Rc<UserAgent>
impl<C> FromContext<C> for Rc<UserAgent>
type Error = Infallible
fn from_context(_context: &C) -> Result<Self, Self::Error>
Source§impl<C, T0> FromContext<C> for (T0,)where
T0: FromContext<C>,
impl<C, T0> FromContext<C> for (T0,)where
T0: FromContext<C>,
Source§impl<C, T0, T1> FromContext<C> for (T0, T1)where
T0: FromContext<C>,
T1: FromContext<C>,
impl<C, T0, T1> FromContext<C> for (T0, T1)where
T0: FromContext<C>,
T1: FromContext<C>,
Source§impl<C, T0, T1, T2> FromContext<C> for (T0, T1, T2)
impl<C, T0, T1, T2> FromContext<C> for (T0, T1, T2)
Source§impl<C, T0, T1, T2, T3> FromContext<C> for (T0, T1, T2, T3)
impl<C, T0, T1, T2, T3> FromContext<C> for (T0, T1, T2, T3)
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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§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>,
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§impl<T, C> FromContext<C> for Option<T>where
T: FromContext<C>,
impl<T, C> FromContext<C> for Option<T>where
T: FromContext<C>,
type Error = Infallible
fn from_context(context: &C) -> Result<Self, Self::Error>
Source§impl<T, C> FromContext<C> for Result<T, T::Error>where
T: FromContext<C>,
impl<T, C> FromContext<C> for Result<T, T::Error>where
T: FromContext<C>,
type Error = Infallible
fn from_context(context: &C) -> Result<Self, Self::Error>
Implementors§
Source§impl FromContext<ConfigureContext> for Clock
impl FromContext<ConfigureContext> for Clock
type Error = AlreadyExtracted<Clock>
Source§impl FromContext<ConfigureContext> for Configuration
impl FromContext<ConfigureContext> for Configuration
type Error = Infallible
Source§impl FromContext<ConfigureContext, Transitive> for GrpcClient
impl FromContext<ConfigureContext, Transitive> for GrpcClient
type Error = Infallible
Source§impl<C> FromContext<C> for HttpClientwhere
Rc<dyn Host>: FromContext<C, Error = Infallible>,
Rc<RootReactor>: FromContext<C, Error = Infallible>,
impl<C> FromContext<C> for HttpClientwhere
Rc<dyn Host>: FromContext<C, Error = Infallible>,
Rc<RootReactor>: FromContext<C, Error = Infallible>,
type Error = Infallible
type Error = Infallible
Source§impl<C> FromContext<C> for StreamPropertieswhere
Rc<dyn Host>: FromContext<C, Error = Infallible>,
Rc<RootReactor>: FromContext<C, Error = Infallible>,
Stream properties can be injected for any context.
impl<C> FromContext<C> for StreamPropertieswhere
Rc<dyn Host>: FromContext<C, Error = Infallible>,
Rc<RootReactor>: FromContext<C, Error = Infallible>,
Stream properties can be injected for any context.