Trait runtime_injector_actix::Provider[][src]

pub trait Provider: Service {
    fn result(&self) -> ServiceInfo;
fn provide(
        &mut self,
        injector: &Injector,
        request_info: RequestInfo
    ) -> Result<Arc<dyn Any + 'static + Sync + Send>, InjectError>; fn provide_owned(
        &mut self,
        _injector: &Injector,
        _request_info: RequestInfo
    ) -> Result<Box<dyn Any + 'static + Sync + Send, Global>, InjectError> { ... } }

Weakly typed service provider. Given an injector, this will provide an implementation of a service. This is automatically implemented for all types that implement TypedProvider, and TypedProvider should be preferred if possible to allow for stronger type checking.

Required methods

fn result(&self) -> ServiceInfo[src]

The ServiceInfo which describes the type returned by this provider.

fn provide(
    &mut self,
    injector: &Injector,
    request_info: RequestInfo
) -> Result<Arc<dyn Any + 'static + Sync + Send>, InjectError>
[src]

Provides an instance of the service.

Loading content...

Provided methods

fn provide_owned(
    &mut self,
    _injector: &Injector,
    _request_info: RequestInfo
) -> Result<Box<dyn Any + 'static + Sync + Send, Global>, InjectError>
[src]

Provides an owned instance of the service.

Loading content...

Implementors

impl<I, P> Provider for InterfaceProvider<I, P> where
    P: TypedProvider,
    I: InterfaceFor<<P as TypedProvider>::Result> + ?Sized
[src]

pub fn result(&self) -> ServiceInfo[src]

pub fn provide(
    &mut self,
    injector: &Injector,
    request_info: RequestInfo
) -> Result<Arc<dyn Any + 'static + Sync + Send>, InjectError>
[src]

pub fn provide_owned(
    &mut self,
    injector: &Injector,
    request_info: RequestInfo
) -> Result<Box<dyn Any + 'static + Sync + Send, Global>, InjectError>
[src]

impl<T> Provider for T where
    T: TypedProvider
[src]

pub fn result(&self) -> ServiceInfo[src]

pub fn provide(
    &mut self,
    injector: &Injector,
    request_info: RequestInfo
) -> Result<Arc<dyn Any + 'static + Sync + Send>, InjectError>
[src]

pub fn provide_owned(
    &mut self,
    injector: &Injector,
    request_info: RequestInfo
) -> Result<Box<dyn Any + 'static + Sync + Send, Global>, InjectError>
[src]

Loading content...