2 个版本
1.0.0-beta.3 | 2022年7月22日 |
---|
#11 in #inversion-of-control
每月37次下载
9KB
140 行
Easy DI
Rust 的简单依赖注入容器。
示例
代码
use std::sync::Arc;
use easy_di::{Container, ServiceProvider};
pub trait Animal {
fn make_sound(&self);
}
#[derive(Clone)]
struct Dog;
impl Animal for Dog {
fn make_sound(&self) {
println!("woof woof!")
}
}
fn main() {
let mut container = Container::new();
let animal: Arc<dyn Animal + Sync + Send> = Arc::new(Dog);
container.inject(animal);
let animal2 = container.find::<Arc<dyn Animal + Sync + Send>>();
animal2.unwrap().make_sound();
}
贡献
本项目欢迎所有类型的贡献。没有哪项贡献是微不足道的!
如果您想为此项目做出贡献但不知道从何开始,或者需要与此项目相关的帮助,请随时通过以下邮箱联系我 https://www.eisberg-labs.com/(底部有联系表单)。
关于贡献的一些提示可以在 Contributing.md 中找到。
行为准则
本项目遵循 Rust 行为准则。
许可证
在 MIT 许可证 和 Apache 许可证 的条款下分发。
依赖
~0.5–1MB
~23K SLoC