16个版本
0.3.4 | 2024年6月15日 |
---|---|
0.3.3 | 2024年6月15日 |
0.2.8 | 2024年6月15日 |
0.1.2 | 2024年6月11日 |
#409 在 过程宏
每月 65 次下载
18KB
380 代码行
Rust宏依赖注入
导入库
rs-macro-di = "0.2.0"
或使用cargo添加
cargo add rs-macro-di
添加依赖
// Add singleton service
add_singleton!(Arc::new(SingletonService::new()));
// Add scoped service
add_scoped!(ScopedService);
// Add transient service
add_transient!(ScopedService);
使用配置的服务
let service: Arc<ServiceClass> = provide!(ServiceClass);
或无宏
// Get provider
let mut provider = provider!();
// or
let mut provider = get_mut_service_provider();
// Add singleton service
provider.add_singleton(Arc::new(SingletonService::new()));
// Add scoped service
provider.add_scoped::<ScopedService>();
// Add transient service
provider.add_transient::<ScopedService>();
// Get provider
let provider = provider!();
let service: Arc<ServiceClass> = provider.provide::<ServiceClass>();
使用作用域块
// Add scoped service
add_scoped!(ScopedService);
// scoped service instances are cleared at the end of with_scope
with_scope(|| {
let service: Arc<ScopedService> = provide!(ScopedService);
})
依赖
~3MB
~59K SLoC