anthill-di

Rust di containers system


Warning

Library required Rust nightly


Example

```rust

use anthill_di::{ builders::ContainerBuilder, Injector, Injection, DiError };

trait TextGetter { fn get(&self) -> String; }

struct StructWithText { text: String, }

impl Injection for StructWithText { fn buildinjection(: &mut Injector) -> Result { Ok(Self { text: "test".to_string(), }) } }

impl TextGetter for StructWithText { fn get(&self) -> String { self.text.clone() } }

struct TextBox { text_getter: Box, }

impl Injection for TextBox { fn buildinjection(injector: &mut Injector) -> Result { Ok(Self { textgetter: injector.getnewinstance()?, }) } }

fn main() { let containers = vec![ ContainerBuilder::bindinterface::().build(), ContainerBuilder::bindtype::().build(), ];

let injector = Injector::new(containers);

let obj = injector.write().unwrap().get_new_instance::<TextBox>().unwrap();

assert_eq!(obj.text_getter.get(), "test".to_string());

}

```

More shared examples present in tests folder