pub struct ModuleRegistry { /* private fields */ }
Expand description
Module registry for managing service modules
Implementations§
Source§impl ModuleRegistry
impl ModuleRegistry
Sourcepub fn register_module<T: ServiceModule + 'static>(
&mut self,
module: T,
config: Option<ModuleConfig>,
) -> Result<(), CoreError>
pub fn register_module<T: ServiceModule + 'static>( &mut self, module: T, config: Option<ModuleConfig>, ) -> Result<(), CoreError>
Register a module
Sourcepub fn register_modules<T: ServiceModule + 'static>(
&mut self,
modules: Vec<T>,
) -> Result<(), CoreError>
pub fn register_modules<T: ServiceModule + 'static>( &mut self, modules: Vec<T>, ) -> Result<(), CoreError>
Register multiple modules
Sourcepub fn calculate_load_order(&mut self) -> Result<Vec<ModuleId>, CoreError>
pub fn calculate_load_order(&mut self) -> Result<Vec<ModuleId>, CoreError>
Calculate load order based on dependencies
Sourcepub fn configure_all<T: ServiceBinder>(
&mut self,
container: &mut T,
) -> Result<(), CoreError>
pub fn configure_all<T: ServiceBinder>( &mut self, container: &mut T, ) -> Result<(), CoreError>
Configure all registered modules
Sourcepub async fn initialize_all(
&mut self,
container: &IocContainer,
) -> Result<(), CoreError>
pub async fn initialize_all( &mut self, container: &IocContainer, ) -> Result<(), CoreError>
Initialize all modules in dependency order
Sourcepub async fn shutdown_all(
&mut self,
container: &IocContainer,
) -> Result<(), CoreError>
pub async fn shutdown_all( &mut self, container: &IocContainer, ) -> Result<(), CoreError>
Shutdown all modules in reverse dependency order
Sourcepub fn get_module(
&self,
module_id: &ModuleId,
) -> Option<&Arc<dyn ServiceModule>>
pub fn get_module( &self, module_id: &ModuleId, ) -> Option<&Arc<dyn ServiceModule>>
Get module by ID
Sourcepub fn get_loaded_module(&self, module_id: &ModuleId) -> Option<&LoadedModule>
pub fn get_loaded_module(&self, module_id: &ModuleId) -> Option<&LoadedModule>
Get loaded module info
Sourcepub fn get_all_loaded_modules(&self) -> Vec<&LoadedModule>
pub fn get_all_loaded_modules(&self) -> Vec<&LoadedModule>
Get all loaded modules
Sourcepub fn is_module_ready(&self, module_id: &ModuleId) -> bool
pub fn is_module_ready(&self, module_id: &ModuleId) -> bool
Check if a module is loaded and initialized
Sourcepub fn get_dependency_graph(&self) -> &HashMap<ModuleId, Vec<ModuleId>>
pub fn get_dependency_graph(&self) -> &HashMap<ModuleId, Vec<ModuleId>>
Get module dependency graph for visualization
Sourcepub fn get_load_order(&self) -> &[ModuleId]
pub fn get_load_order(&self) -> &[ModuleId]
Get load order
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ModuleRegistry
impl !RefUnwindSafe for ModuleRegistry
impl Send for ModuleRegistry
impl Sync for ModuleRegistry
impl Unpin for ModuleRegistry
impl !UnwindSafe for ModuleRegistry
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