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§

source

type Type

The generic of the Provider.

Required Methods§

source

fn provider() -> Provider<Self::Type>

Returns a default Provider for the implementation.

Object Safety§

This trait is not object safe.

Implementors§