Trait rudi::DefaultProvider
source · pub trait DefaultProvider {
type Type;
// Required method
fn provider() -> Provider<Self::Type>;
}
Expand description
A trait for giving a type a default Provider
.
Define this trait so that the purpose is not to be implemented manually,
but to use the #[Singleton]
, #[Transient]
or #[SingleOwner]
attribute macros to generate the implementation.
§Example
use rudi::{DefaultProvider, Provider, Singleton, Transient};
#[Transient]
struct A;
#[Singleton]
fn Number() -> i32 {
42
}
fn main() {
let _: Provider<A> = <A as DefaultProvider>::provider();
let _: Provider<i32> = <Number as DefaultProvider>::provider();
}
Required Associated Types§
Required Methods§
Object Safety§
This trait is not object safe.