pub struct KitModuleBuilder<M: Module, B> { /* private fields */ }Expand description
A builder wrapper that can build and register a module’s capability.
Created by calling .kit(&kit) on any standard builder.
Does NOT implement WithConfig or WithRequirements — those must be
called before .kit().
Implementations§
Source§impl<M: Module, B: ModuleBuilder<M>> KitModuleBuilder<M, B>
impl<M: Module, B: ModuleBuilder<M>> KitModuleBuilder<M, B>
Sourcepub fn provide<K>(self) -> Result<Arc<K::Capability>, KitError>
pub fn provide<K>(self) -> Result<Arc<K::Capability>, KitError>
Build the module and register its capability.
Returns the built capability on success.
On failure, returns KitError::BuildFailed or KitError::DuplicateCapability.
§Type Constraint
M::Capability must be convertible to Arc<K::Capability> for the provided key K.
Typically, M::Capability = Arc<dyn Trait + Send + Sync> and K::Capability = dyn Trait.
§Failure Behavior
If build succeeds but registration fails (key already exists),
the built capability is discarded and DuplicateCapability is returned.
Auto Trait Implementations§
impl<M, B> Freeze for KitModuleBuilder<M, B>where
B: Freeze,
impl<M, B> RefUnwindSafe for KitModuleBuilder<M, B>where
B: RefUnwindSafe,
M: RefUnwindSafe,
impl<M, B> Send for KitModuleBuilder<M, B>
impl<M, B> Sync for KitModuleBuilder<M, B>
impl<M, B> Unpin for KitModuleBuilder<M, B>
impl<M, B> UnsafeUnpin for KitModuleBuilder<M, B>where
B: UnsafeUnpin,
impl<M, B> UnwindSafe for KitModuleBuilder<M, B>where
B: UnwindSafe,
M: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more