pub trait Provider:
Send
+ Sync
+ 'static {
// Required method
fn provide(container: &Container) -> Result<Self, InjectError>
where Self: Sized;
// Provided methods
fn scope() -> Scope { ... }
fn dependencies() -> Vec<ProviderKey> { ... }
fn optional_dependencies() -> Vec<ProviderKey> { ... }
fn definition() -> ProviderDefinition
where Self: Sized { ... }
}Expand description
Types generated by #[injectable] can register themselves with a container.
Required Methods§
Provided Methods§
Sourcefn dependencies() -> Vec<ProviderKey>
fn dependencies() -> Vec<ProviderKey>
List the provider keys required by this factory.
Sourcefn optional_dependencies() -> Vec<ProviderKey>
fn optional_dependencies() -> Vec<ProviderKey>
Optional dependency keys which may be absent at startup.
Sourcefn definition() -> ProviderDefinitionwhere
Self: Sized,
fn definition() -> ProviderDefinitionwhere
Self: Sized,
Build registration metadata for this provider.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".