diff options
Diffstat (limited to 'examples/basic')
-rw-r--r-- | examples/basic/animals/human.rs | 6 | ||||
-rw-r--r-- | examples/basic/bootstrap.rs | 5 | ||||
-rw-r--r-- | examples/basic/main.rs | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/examples/basic/animals/human.rs b/examples/basic/animals/human.rs index 8e52b5b..d9b848b 100644 --- a/examples/basic/animals/human.rs +++ b/examples/basic/animals/human.rs @@ -1,5 +1,5 @@ use syrette::injectable; -use syrette::ptr::TransientPtr; +use syrette::ptr::{SingletonPtr, TransientPtr}; use crate::interfaces::cat::ICat; use crate::interfaces::dog::IDog; @@ -7,14 +7,14 @@ use crate::interfaces::human::IHuman; pub struct Human { - dog: TransientPtr<dyn IDog>, + dog: SingletonPtr<dyn IDog>, cat: TransientPtr<dyn ICat>, } #[injectable(IHuman)] impl Human { - pub fn new(dog: TransientPtr<dyn IDog>, cat: TransientPtr<dyn ICat>) -> Self + pub fn new(dog: SingletonPtr<dyn IDog>, cat: TransientPtr<dyn ICat>) -> Self { Self { dog, cat } } diff --git a/examples/basic/bootstrap.rs b/examples/basic/bootstrap.rs index 71ef713..10a7041 100644 --- a/examples/basic/bootstrap.rs +++ b/examples/basic/bootstrap.rs @@ -14,7 +14,10 @@ pub fn bootstrap() -> DIContainer { let mut di_container: DIContainer = DIContainer::new(); - di_container.bind::<dyn IDog>().to::<Dog>(); + di_container + .bind::<dyn IDog>() + .to_singleton::<Dog>() + .unwrap(); di_container.bind::<dyn ICat>().to::<Cat>(); di_container.bind::<dyn IHuman>().to::<Human>(); diff --git a/examples/basic/main.rs b/examples/basic/main.rs index f96d963..3a937c3 100644 --- a/examples/basic/main.rs +++ b/examples/basic/main.rs @@ -16,7 +16,7 @@ fn main() let di_container = bootstrap(); - let dog = di_container.get::<dyn IDog>().unwrap(); + let dog = di_container.get_singleton::<dyn IDog>().unwrap(); dog.woof(); |