Catalog

Struct Catalog 

Source
pub struct Catalog(/* private fields */);

Implementations§

Source§

impl Catalog

Source

pub fn builder() -> CatalogBuilder

Returns a CatalogBuilder used to initialize a Catalog.

Source

pub fn builder_chained(&self) -> CatalogBuilder

Returns a CatalogBuilder that is chained to this Catalog and thus “inherits” all previous builders and bindings. Chaining catalogs is a very useful technique to add dynamic values that are not known upfront. For example, catalog chaining can be used in HTTP server middleware to add authorization information about the caller after validating the security token, or to open a database transaction and make it available for injection to all subsequently instantiated services.

Source

pub fn weak_ref(&self) -> CatalogWeakRef

Returns a weak reference to the catalog chain. Weak reference is useful when you want to keep using Catalog as a factory for complex instantiation logic, but don’t want to own the strong reference that prevents it to be dropped. It’s imperative to use weak references in Singleton and other caching scopes, as otherwise you may end up with cyclic references that prevent all instances from ever being cleaned up.

Source

pub fn builders<'a>(&'a self) -> Box<dyn Iterator<Item = &'a dyn Builder> + 'a>

Returns an iterator over all registered instance Builders.

Source

pub fn builders_for<'a, Iface>( &'a self, ) -> Box<dyn Iterator<Item = TypecastBuilder<'a, Iface>> + 'a>
where Iface: 'static + ?Sized,

Returns an iterator over Builders bound to a specific interface type.

Source

pub fn builders_for_with_meta<'a, Iface, Meta>( &'a self, pred: impl Fn(&Meta) -> bool + Copy + 'a, ) -> Box<dyn Iterator<Item = TypecastBuilder<'a, Iface>> + 'a>
where Iface: 'static + ?Sized, Meta: 'static,

Filters Builders by bound interface type and metadata predicate.

Source

pub fn get<Spec>(&self) -> Result<Spec::ReturnType, InjectionError>
where Spec: DependencySpec + 'static,

Resolves and attempts to get an instance by a specific dependency DependencySpec.

Source

pub fn get_with_context<Spec>( &self, ctx: &InjectionContext<'_>, ) -> Result<Spec::ReturnType, InjectionError>
where Spec: DependencySpec + 'static,

Source

pub fn get_one<Iface>(&self) -> Result<Arc<Iface>, InjectionError>
where Iface: 'static + ?Sized + Send + Sync,

A short-hand for get::<OneOf<T>>().

Trait Implementations§

Source§

impl Clone for Catalog

Source§

fn clone(&self) -> Catalog

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Catalog

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.