Module

Trait Module 

Source
pub trait Module: Send + Sync {
    // Required methods
    fn name(&self) -> &'static str;
    fn configure(
        &self,
        builder: ContainerBuilder,
    ) -> Result<ContainerBuilder, ModuleError>;

    // Provided methods
    fn routes(&self) -> Vec<RouteDefinition> { ... }
    fn middleware(&self) -> Vec<MiddlewareDefinition> { ... }
    fn boot(&self, _container: &Container) -> Result<(), ModuleError> { ... }
    fn dependencies(&self) -> Vec<&'static str> { ... }
    fn version(&self) -> Option<&'static str> { ... }
    fn description(&self) -> Option<&'static str> { ... }
    fn is_optional(&self) -> bool { ... }
}
Expand description

Application module trait that integrates with the framework

Required Methods§

Source

fn name(&self) -> &'static str

Module name for identification

Source

fn configure( &self, builder: ContainerBuilder, ) -> Result<ContainerBuilder, ModuleError>

Configure services in the container builder

Provided Methods§

Source

fn routes(&self) -> Vec<RouteDefinition>

Define routes for this module

Source

fn middleware(&self) -> Vec<MiddlewareDefinition>

Define middleware for this module

Source

fn boot(&self, _container: &Container) -> Result<(), ModuleError>

Boot the module after container is built

Source

fn dependencies(&self) -> Vec<&'static str>

Module dependencies (other modules that must be loaded first)

Source

fn version(&self) -> Option<&'static str>

Module version for compatibility checking

Source

fn description(&self) -> Option<&'static str>

Module description

Source

fn is_optional(&self) -> bool

Check if this module can be disabled

Implementors§