1 个不稳定版本
0.1.0 | 2023 年 12 月 20 日 |
---|
#17 在 #facade
在 3 个crate中(通过 adrift_core)使用
23KB
457 行代码,不包括注释
Silhouette
一个简单的 Rust 依赖注入库
关于 Silhouette
Silhouette 在 Rust 中实现了一个简单的服务容器以进行依赖注入。它不仅提供了一个用于本地使用的 Container
结构,还提供了一个静态接口(在 facade::Container
下),以便轻松管理应用程序中的依赖项。它深受 Laravel 的服务容器 的启发。
入门指南
use silhouette::facade::Container;
struct DBPool {}
struct DBConnection {}
// will always use the same pool
Container::singleton(&|_| DBPool::new())?;
// will resolve a new connection each time
Container::bind(&|container| -> DBConnection {
let shared_pool = container.resolve::<DBPool>().unwrap();
shared_pool.get_conn()
})?;
// somewhere else in your app...
let connection: DBConnection = Container::resolve()?;
有关详细使用说明,请参阅 docs.rs 上的文档。
许可证
本项目受 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。
依赖项
~290–750KB
~18K SLoC