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§
Sourcefn add_module<M: ServiceModule>(self, module: M) -> DiResult<Self>where
Self: Sized,
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();