Trait runtime_injector::IntoSingleton [−][src]
Defines a conversion into a singleton provider. This trait is automatically implemented for all service factories.
Required methods
#[must_use]fn singleton(self) -> SingletonProvider<D, R, F>
[src]
Creates a singleton provider. Singleton providers create their values only once (when first requested) and reuse that value for each future request.
Example
use runtime_injector::{IntoSingleton, Injector, Svc}; #[derive(Default)] struct Foo; let mut builder = Injector::builder(); builder.provide(Foo::default.singleton()); let mut injector = builder.build(); let foo1: Svc<Foo> = injector.get().unwrap(); let foo2: Svc<Foo> = injector.get().unwrap(); assert!(Svc::ptr_eq(&foo1, &foo2));
Implementors
impl<D, R, F> IntoSingleton<D, R, F> for F where
R: Service,
F: ServiceFactory<D, R>,
[src]
R: Service,
F: ServiceFactory<D, R>,