#di #ioc #dependency-injection

rustyinject

无成本的 Rust 编译时 DI 框架

2 个版本

0.1.1 2024 年 6 月 13 日
0.1.0 2024 年 6 月 13 日

#17 in #ioc

MIT 许可协议

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 文件。

无运行时依赖