1 个不稳定版本

0.1.0 2023 年 12 月 20 日

#17#facade


3 个crate中(通过 adrift_core)使用

MIT 许可证

23KB
457 行代码,不包括注释

Silhouette

一个简单的 Rust 依赖注入库

crates.io download count badge docs.rs

关于 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