Crates.io | dyn_inject |
lib.rs | dyn_inject |
version | 0.1.0 |
source | src |
created_at | 2023-04-23 09:56:31.686573 |
updated_at | 2023-04-23 09:56:31.686573 |
description | Rust dependency injection that works with trait objects. |
homepage | |
repository | https://github.com/NotAPenguin0/dyn_inject |
max_upload_size | |
id | 846454 |
size | 5,054 |
This crates provides utilities for dependency injection in Rust, also supporting dyn Trait
trait objects instead of only static, sized types.
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()
}