2 个版本
0.1.1 | 2024 年 6 月 13 日 |
---|---|
0.1.0 | 2024 年 6 月 13 日 |
#17 in #ioc
29KB
661 行
rustyinject
Rustyinject 是一个为 Rust 定制的编译时 DI 库。
概述
依赖注入(DI)是一种设计模式,用于实现 IoC(控制反转),允许以灵活和解耦的方式创建、存储和检索依赖项。DI 容器可以:
- 存储单例实例并提供它们。
- 提供单例的克隆实例。
- 使用工厂方法创建实例。
用法
以下是如何使用 DI 容器的示例
use rustyinject::{DependencyContainer, injector::{factories::ConstructorFactory, Injector}};
struct MyService {
// Some fields
}
impl ConstructorFactory for MyService {
type Dependencies<'a> = (); // Specify your dependencies here.
fn build(dependencies: Self::Dependencies<'_>) -> Self {
Self {
// Some fields
}
}
}
let container = DependencyContainer::default()
.with_constructor_factory::<MyService>();
let my_service: MyService = (&container).inject();
贡献
欢迎贡献!请随意提交问题或拉取请求。
许可协议
本项目采用 MIT 许可协议。有关详细信息,请参阅LICENSE 文件。