aboutsummaryrefslogtreecommitdiff
path: root/examples/basic
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-07-22 13:25:45 +0200
committerHampusM <hampus@hampusmat.com>2022-07-22 13:25:45 +0200
commit4cb3884e24b3cba3347ff93475bbabd6fe18d2fa (patch)
tree2fa5e6d81de9dc39bd11d64797914e5d305d98e2 /examples/basic
parent157f38bc2287dcb9a8b21ef3d5e33c569dc5136e (diff)
refactor: make factories an optional feature
Diffstat (limited to 'examples/basic')
-rw-r--r--examples/basic/animals/cow.rs24
-rw-r--r--examples/basic/animals/human.rs20
-rw-r--r--examples/basic/animals/mod.rs1
-rw-r--r--examples/basic/bootstrap.rs7
-rw-r--r--examples/basic/interfaces/cow.rs10
-rw-r--r--examples/basic/interfaces/mod.rs1
6 files changed, 3 insertions, 60 deletions
diff --git a/examples/basic/animals/cow.rs b/examples/basic/animals/cow.rs
deleted file mode 100644
index a75d750..0000000
--- a/examples/basic/animals/cow.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-use crate::interfaces::cow::ICow;
-
-pub struct Cow
-{
- moo_cnt: i32,
-}
-
-impl Cow
-{
- pub fn new(moo_cnt: i32) -> Self
- {
- Self { moo_cnt }
- }
-}
-
-impl ICow for Cow
-{
- fn moo(&self)
- {
- for _ in 0..self.moo_cnt {
- println!("Moo");
- }
- }
-}
diff --git a/examples/basic/animals/human.rs b/examples/basic/animals/human.rs
index 5bd2f8f..00574a3 100644
--- a/examples/basic/animals/human.rs
+++ b/examples/basic/animals/human.rs
@@ -1,8 +1,7 @@
use syrette::injectable;
-use syrette::ptr::{FactoryPtr, InterfacePtr};
+use syrette::ptr::InterfacePtr;
use crate::interfaces::cat::ICat;
-use crate::interfaces::cow::{CowFactory, ICow};
use crate::interfaces::dog::IDog;
use crate::interfaces::human::IHuman;
@@ -10,23 +9,14 @@ 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
+ pub fn new(dog: InterfacePtr<dyn IDog>, cat: InterfacePtr<dyn ICat>) -> Self
{
- Self {
- dog,
- cat,
- cow_factory,
- }
+ Self { dog, cat }
}
}
@@ -41,9 +31,5 @@ impl IHuman for Human
println!("Hi kitty!");
self.cat.meow();
-
- let cow: Box<dyn ICow> = (self.cow_factory)(3);
-
- cow.moo();
}
}
diff --git a/examples/basic/animals/mod.rs b/examples/basic/animals/mod.rs
index 6511d17..5444978 100644
--- a/examples/basic/animals/mod.rs
+++ b/examples/basic/animals/mod.rs
@@ -1,4 +1,3 @@
pub mod cat;
-pub mod cow;
pub mod dog;
pub mod human;
diff --git a/examples/basic/bootstrap.rs b/examples/basic/bootstrap.rs
index a1a7b05..71ef713 100644
--- a/examples/basic/bootstrap.rs
+++ b/examples/basic/bootstrap.rs
@@ -2,13 +2,11 @@ use syrette::DIContainer;
// Concrete implementations
use crate::animals::cat::Cat;
-use crate::animals::cow::Cow;
use crate::animals::dog::Dog;
use crate::animals::human::Human;
//
// Interfaces
use crate::interfaces::cat::ICat;
-use crate::interfaces::cow::{CowFactory, ICow};
use crate::interfaces::dog::IDog;
use crate::interfaces::human::IHuman;
@@ -20,10 +18,5 @@ pub fn bootstrap() -> DIContainer
di_container.bind::<dyn ICat>().to::<Cat>();
di_container.bind::<dyn IHuman>().to::<Human>();
- di_container.bind::<CowFactory>().to_factory(&|moo_cnt| {
- let cow: Box<dyn ICow> = Box::new(Cow::new(moo_cnt));
- cow
- });
-
di_container
}
diff --git a/examples/basic/interfaces/cow.rs b/examples/basic/interfaces/cow.rs
deleted file mode 100644
index 59ce7b1..0000000
--- a/examples/basic/interfaces/cow.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-use syrette::factory;
-use syrette::interfaces::factory::IFactory;
-
-pub trait ICow
-{
- fn moo(&self);
-}
-
-#[factory]
-pub type CowFactory = dyn IFactory<(i32,), dyn ICow>;
diff --git a/examples/basic/interfaces/mod.rs b/examples/basic/interfaces/mod.rs
index 6511d17..5444978 100644
--- a/examples/basic/interfaces/mod.rs
+++ b/examples/basic/interfaces/mod.rs
@@ -1,4 +1,3 @@
pub mod cat;
-pub mod cow;
pub mod dog;
pub mod human;