1 个不稳定版本
0.1.0 | 2021年6月17日 |
---|
#722 in 配置
67KB
1K SLoC
rscontainer
rscontainer 是一个用于 Rust 编程语言的库,用于管理对象之间的依赖关系。主要类型是 ServiceContainer
,它有两个用途:它充当共享实例(单例)和自定义构造函数的注册表,并提供依赖注入的机制。
更多信息请参阅文档。
解析实例
存在不同类型的实例
- 拥有实例:用于拥有范围的全新实例。此实例将不会存储在服务容器中,每次解析拥有实例时,您都会得到一个新的实例。
- 共享实例:存储在服务容器中的智能指针背后的实例。每次解析共享服务时,您都会得到相同的实例。
- 某些实例:拥有实例和共享实例的枚举。当您想在类型中使用时,让用户决定他们想要提供哪种类型的实例,请使用此枚举。
如何使用
解析拥有实例
use rscontainer::ServiceContainer;
let mut container = ServiceContainer::new();
let mut foo = container.resolver().owned::<SomeService>(())?;
foo.do_something();
解析共享实例(单例)
use rscontainer::{ServiceContainer, Shared};
let mut container = ServiceContainer::new();
let foo: Shared<SomeService> = container.resolver().shared()?;
foo.access_mut(|foo| {
let foo = foo.assert_healthy();
foo.do_something();
});
依赖关系
~18KB