#traits #dyn #injection #object #inject #registry #foo

nightly dyn_inject

Rust依赖注入库,支持与特例对象一起工作

1个不稳定版本

0.1.0 2023年4月23日

#28 in #inject

Apache-2.0

6KB
65 代码行,不含注释

dyn_inject

此crates提供了Rust中依赖注入的实用工具,也支持使用dyn Trait特例对象,而不仅仅是静态、固定大小的类型。

示例

use dyn_inject::Registry;

trait Foo {
    fn foo();
}

struct Bar;

impl Foo for Bar {
    fn foo() {
        println!("Hello");
    }
}

fn main() {
    let mut registry = Registry::new();
    registry.put_dyn::<dyn Foo>(Bar);
    // Calls Bar::foo()
    registry.get_dyn::<dyn Foo>().unwrap().foo()
}

lib.rs:

此crates提供了Rust中依赖注入的实用工具,也支持使用dyn Trait特例对象,而不仅仅是静态、固定大小的类型。

示例

use dyn_inject::Registry;

trait Foo {
    fn foo();
}

struct Bar;

impl Foo for Bar {
    fn foo() {
        println!("Hello");
    }
}

fn main() {
    let mut registry = Registry::new();
    registry.put_dyn::<dyn Foo>(Bar);
    // Calls Bar::foo()
    registry.get_dyn::<dyn Foo>().unwrap().foo();
}

无运行时依赖