Struct silhouette::Container

source ·
pub struct Container { /* private fields */ }
Expand description

The service container.

Implementations§

source§

impl Container

source

pub fn new() -> Self

Create a new instance of the container.

source

pub fn get_instance() -> &'static RwLock<Self>

Get the global instance of the container.

source

pub fn bind<T: 'static>( &mut self, factory: impl Fn(&Self) -> T + 'static + Sync + Send )

Register a binding with the container.

source

pub fn bind_if<T: 'static>( &mut self, factory: impl Fn(&Self) -> T + 'static + Sync + Send )

Register a binding if it hasn’t already been registered.

source

pub fn scoped<T: 'static + Clone + Send + Sync>( &mut self, factory: &(impl Fn(&Self) -> T + 'static) )

Register a scoped binding in the container.

source

pub fn scoped_if<T: 'static + Clone + Send + Sync>( &mut self, factory: &(impl Fn(&Self) -> T + 'static) )

Register a scoped binding if it hasn’t already been registered.

source

pub fn singleton<T: 'static + Clone + Send + Sync>( &mut self, factory: &(impl Fn(&Self) -> T + 'static) )

Register a shared binding in the container.

source

pub fn singleton_if<T: 'static + Clone + Send + Sync>( &mut self, factory: &(impl Fn(&Self) -> T + 'static) )

Register a shared binding if it hasn’t already been registered.

source

pub fn resolve<T: 'static>(&self) -> Result<T, Error>

Resolve the given type from the container.

Errors

Returns an error if the requested type cannot be found or if the requested type cannot be cast from the binding.

source

pub fn forget_scoped_instances(&mut self)

Clear all of the scoped instances from the container.

source

pub fn flush(&mut self)

Flush the container of all bindings and resolved instances.

Trait Implementations§

source§

impl Default for Container

source§

fn default() -> Self

Returns the “default value” for a type. 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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.