AppContextBuilder

Struct AppContextBuilder 

Source
pub struct AppContextBuilder { /* private fields */ }
Expand description

the context to store all beans. AppContext owns the ownership of all registered beans. When AppContext is dropped, all beans will be dropped too

Implementations§

Source§

impl AppContextBuilder

Source

pub fn new() -> Self

init method

Source

pub fn acquire_bean_or_init<T>( &self, _ty: BeanType<T>, name: &'static str, ) -> BeanRef<T>
where T: Send + Sync + 'static,

acquire the BeanRef of a bean. because of the initialization order, returned BeanRef may not be initialized. the method acquire_bean_or_init only requires immutable reference, so the beans which implements BuildFromContext can invoke it during the construction

Source

pub fn construct_bean<T, E, Err, Err2>( self, _ty: BeanType<T>, name: &'static str, extras: E, ) -> Result<Self, Err>
where T: Send + Sync + BuildFromContext<E, Err, Err2> + 'static, Err2: Send + Sync + 'static,

construct a bean and hand over to AppContextBuilder. the bean type must implement BuildFromContext

Source

pub async fn construct_bean_async<T, E, Err, Err2>( self, _ty: BeanType<T>, name: &'static str, extras: E, ) -> Result<Self, Err>
where T: Send + Sync + BuildFromContextAsync<E, Err, Err2> + 'static, Err2: Send + Sync + 'static,

construct a bean and hand over to AppContextBuilder. the bean type must implement BuildFromContextAsync

Source

pub fn build_without_init(self) -> Result<AppContext, BeanError>

finish construction and create AppContext without Mutex. this method will go over all beans and ensure all beans are initialized, but the initialization method will not be ran

Source

pub fn build_non_async(self) -> Result<AppContext, BeanError>

Source

pub async fn build_all(self) -> Result<AppContext, BeanError>

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> BeanTypeOf<T> for T

Source§

const BEAN_TYPE: BeanType<T> = const BEAN_TYPE: BeanType<T> = BeanType(PhantomData);

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

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.