diff options
Diffstat (limited to 'example/src/animals/human.rs')
-rw-r--r-- | example/src/animals/human.rs | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/example/src/animals/human.rs b/example/src/animals/human.rs deleted file mode 100644 index 5bd2f8f..0000000 --- a/example/src/animals/human.rs +++ /dev/null @@ -1,49 +0,0 @@ -use syrette::injectable; -use syrette::ptr::{FactoryPtr, InterfacePtr}; - -use crate::interfaces::cat::ICat; -use crate::interfaces::cow::{CowFactory, ICow}; -use crate::interfaces::dog::IDog; -use crate::interfaces::human::IHuman; - -pub struct Human -{ - dog: InterfacePtr<dyn IDog>, - cat: InterfacePtr<dyn ICat>, - cow_factory: FactoryPtr<CowFactory>, -} - -#[injectable(IHuman)] -impl Human -{ - pub fn new( - dog: InterfacePtr<dyn IDog>, - cat: InterfacePtr<dyn ICat>, - cow_factory: FactoryPtr<CowFactory>, - ) -> Self - { - Self { - dog, - cat, - cow_factory, - } - } -} - -impl IHuman for Human -{ - fn make_pets_make_sounds(&self) - { - println!("Hi doggy!"); - - self.dog.woof(); - - println!("Hi kitty!"); - - self.cat.meow(); - - let cow: Box<dyn ICow> = (self.cow_factory)(3); - - cow.moo(); - } -} |