7 个不稳定版本 (3 个破坏性更新)
0.4.0 | 2021 年 5 月 14 日 |
---|---|
0.3.0 | 2021 年 5 月 8 日 |
0.2.1 | 2021 年 5 月 5 日 |
0.2.0 | 2021 年 3 月 31 日 |
0.1.2 | 2021 年 3 月 28 日 |
#26 in #ioc
每月 35 次下载
用于 runtime_injector_actix
145KB
2K SLoC
runtime_injector
本库提供了一个功能强大、易于使用的控制反转(IoC)容器,重点在于用户体验和可配置性。
入门指南
首先,配置您的注入器
let module = define_module! {
services = [MyService::new.transient()],
interfaces = {
dyn MyInterface = [MyInterfaceImpl::new.singleton()],
},
};
let mut builder = Injector::builder();
builder.add_module(module);
builder.provide(constant(MyConfig));
接下来,创建您的注入器并从中请求服务
let injector = builder.build();
let my_service: Svc<MyService> = injector.get().unwrap();
let my_interface_impl: Svc<dyn MyInterface> = injector.get().unwrap();
// Since `MyService` is transient, we can also request an owned instance of it
let my_service: Box<MyService> = injector.get().unwrap();
最低支持的 Rust 版本
由于库仍在开发中,唯一支持的 Rust 版本是最新稳定版。该库可能在旧版本上也能工作,但没有保证。
许可证
本库的许可证为 MIT 或 Apache 2.0,您可以选择其中之一。