pub struct ModuleRegistry { /* private fields */ }Expand description
Generic module registry
Thread-safe registry for storing and instantiating modules at runtime. Modules are registered with a factory function and can be created by name.
Implementations§
Source§impl ModuleRegistry
impl ModuleRegistry
Sourcepub fn register(&self, name: &str, module_type: &str, factory: ModuleFactory)
pub fn register(&self, name: &str, module_type: &str, factory: ModuleFactory)
Register a module with a factory function
The factory function should return a Box
Sourcepub fn register_with_metadata(
&self,
name: &str,
module_type: &str,
instantiate_fn: &str,
module_path: &str,
struct_name: &str,
factory: ModuleFactory,
)
pub fn register_with_metadata( &self, name: &str, module_type: &str, instantiate_fn: &str, module_path: &str, struct_name: &str, factory: ModuleFactory, )
Register a module with full metadata
Sourcepub fn create_any(&self, name: &str) -> Result<Box<dyn Any + Send + Sync>>
pub fn create_any(&self, name: &str) -> Result<Box<dyn Any + Send + Sync>>
Create a module instance by name
Returns Box<dyn Any + Send + Sync> which you must downcast to your trait type
Sourcepub fn create<T: 'static>(&self, name: &str) -> Result<Box<T>>
pub fn create<T: 'static>(&self, name: &str) -> Result<Box<T>>
Create and downcast a module to a specific trait type
Sourcepub fn list_modules(&self) -> Vec<String>
pub fn list_modules(&self) -> Vec<String>
Get all registered module names
Sourcepub fn get_module_names(&self) -> Vec<String>
pub fn get_module_names(&self) -> Vec<String>
Get all registered module names (alias for compatibility)
Sourcepub fn has_module(&self, name: &str) -> bool
pub fn has_module(&self, name: &str) -> bool
Check if a module is registered
Sourcepub fn get_metadata(&self, name: &str) -> Option<ModuleMetadata>
pub fn get_metadata(&self, name: &str) -> Option<ModuleMetadata>
Get metadata for a module
Sourcepub fn verify_module_signature(&self, name: &str) -> Result<bool>
pub fn verify_module_signature(&self, name: &str) -> Result<bool>
Verify module signature
Sourcepub fn check_module_permissions(
&self,
name: &str,
required_permission: &str,
) -> Result<bool>
pub fn check_module_permissions( &self, name: &str, required_permission: &str, ) -> Result<bool>
Check if module has required permissions
Sourcepub fn is_module_approved(&self, name: &str) -> Result<bool>
pub fn is_module_approved(&self, name: &str) -> Result<bool>
Check if module passed code review
Sourcepub fn verify_supply_chain(&self, name: &str) -> Result<bool>
pub fn verify_supply_chain(&self, name: &str) -> Result<bool>
Verify supply chain information
Sourcepub fn create_secure(&self, name: &str) -> Result<Box<dyn Any + Send + Sync>>
pub fn create_secure(&self, name: &str) -> Result<Box<dyn Any + Send + Sync>>
Create module with security checks
Sourcepub fn create_with_sandbox(
&self,
name: &str,
) -> Result<Box<dyn Any + Send + Sync>>
pub fn create_with_sandbox( &self, name: &str, ) -> Result<Box<dyn Any + Send + Sync>>
Create module with sandbox configuration
Sourcepub fn register_secure(
&self,
name: &str,
module_type: &str,
factory: ModuleFactory,
signature: Option<ModuleSignature>,
permissions: ModulePermissions,
supply_chain: Option<SupplyChainInfo>,
)
pub fn register_secure( &self, name: &str, module_type: &str, factory: ModuleFactory, signature: Option<ModuleSignature>, permissions: ModulePermissions, supply_chain: Option<SupplyChainInfo>, )
Register module with security metadata
Sourcepub fn update_review_status(
&self,
name: &str,
status: CodeReviewStatus,
) -> Result<()>
pub fn update_review_status( &self, name: &str, status: CodeReviewStatus, ) -> Result<()>
Update code review status
Sourcepub fn get_security_report(&self) -> HashMap<String, SecurityReport>
pub fn get_security_report(&self) -> HashMap<String, SecurityReport>
Get security report for all modules
Sourcepub fn security_audit(&self) -> HashMap<String, SecurityCheckResult>
pub fn security_audit(&self) -> HashMap<String, SecurityCheckResult>
Perform comprehensive security check on all modules