diff options
-rw-r--r-- | README.md | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -38,6 +38,8 @@ The goal of Syrette is to be a simple, useful, convenient and familiar DI librar ## Example usage ```rust +use std::error::Error; + use syrette::{injectable, DIContainer}; use syrette::ptr::TransientPtr; @@ -70,7 +72,8 @@ trait IWarrior fn fight(&self); } -struct Warrior { +struct Warrior +{ weapon: TransientPtr<dyn IWeapon>, } @@ -91,19 +94,21 @@ impl IWarrior for Warrior } } -fn main() +fn main() -> Result<(), Box<dyn Error>> { let mut di_container = DIContainer::new(); - di_container.bind::<dyn IWeapon>().to::<Sword>().unwrap(); + di_container.bind::<dyn IWeapon>().to::<Sword>()?; - di_container.bind::<dyn IWarrior>().to::<Warrior>().unwrap(); + di_container.bind::<dyn IWarrior>().to::<Warrior>()?; - let warrior = di_container.get::<dyn IWarrior>().unwrap(); + let warrior = di_container.get::<dyn IWarrior>()?.transient()?; warrior.fight(); println!("Warrior has fighted"); + + Ok(()) } ``` |