ServiceCollectionExt

Trait ServiceCollectionExt 

Source
pub trait ServiceCollectionExt {
    // Required method
    fn add_module<M: ServiceModule>(self, module: M) -> DiResult<Self>
       where Self: Sized;
}
Expand description

Extension trait for ServiceCollection that provides module registration capabilities.

This trait enables .NET-style extension method chaining for modules.

Required Methods§

Source

fn add_module<M: ServiceModule>(self, module: M) -> DiResult<Self>
where Self: Sized,

Add a module to the service collection using extension method syntax.

§Example
use ferrous_di::{ServiceCollection, ServiceCollectionExt, ServiceModule, DiResult};
 
struct DatabaseModule;
impl ServiceModule for DatabaseModule {
    fn register_services(self, _: &mut ServiceCollection) -> DiResult<()> { Ok(()) }
}
 
struct UserModule;  
impl ServiceModule for UserModule {
    fn register_services(self, _: &mut ServiceCollection) -> DiResult<()> { Ok(()) }
}
 
let mut services = ServiceCollection::new();
let provider = services
    .add_module(DatabaseModule)?
    .add_module(UserModule)?
    .build();

Implementors§