1个不稳定版本
0.1.0 | 2023年4月23日 |
---|
#28 in #inject
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();
}