aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/unbound/animal_store.rs34
-rw-r--r--examples/unbound/animals/cat.rs22
-rw-r--r--examples/unbound/animals/dog.rs22
-rw-r--r--examples/unbound/animals/human.rs37
-rw-r--r--examples/unbound/animals/mod.rs3
-rw-r--r--examples/unbound/bootstrap.rs29
-rw-r--r--examples/unbound/interfaces/animal_store.rs11
-rw-r--r--examples/unbound/interfaces/cat.rs4
-rw-r--r--examples/unbound/interfaces/dog.rs4
-rw-r--r--examples/unbound/interfaces/human.rs4
-rw-r--r--examples/unbound/interfaces/mod.rs4
-rw-r--r--examples/unbound/main.rs32
12 files changed, 0 insertions, 206 deletions
diff --git a/examples/unbound/animal_store.rs b/examples/unbound/animal_store.rs
deleted file mode 100644
index b2127e4..0000000
--- a/examples/unbound/animal_store.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-use syrette::injectable;
-use syrette::ptr::{SingletonPtr, TransientPtr};
-
-use crate::interfaces::animal_store::IAnimalStore;
-use crate::interfaces::cat::ICat;
-use crate::interfaces::dog::IDog;
-
-pub struct AnimalStore
-{
- dog: SingletonPtr<dyn IDog>,
- cat: TransientPtr<dyn ICat>,
-}
-
-#[injectable]
-impl AnimalStore
-{
- fn new(dog: SingletonPtr<dyn IDog>, cat: TransientPtr<dyn ICat>) -> Self
- {
- Self { dog, cat }
- }
-}
-
-impl IAnimalStore for AnimalStore
-{
- fn get_dog(&self) -> SingletonPtr<dyn IDog>
- {
- self.dog.clone()
- }
-
- fn get_cat(&self) -> &TransientPtr<dyn ICat>
- {
- &self.cat
- }
-}
diff --git a/examples/unbound/animals/cat.rs b/examples/unbound/animals/cat.rs
deleted file mode 100644
index 153ad4b..0000000
--- a/examples/unbound/animals/cat.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-use syrette::injectable;
-
-use crate::interfaces::cat::ICat;
-
-pub struct Cat {}
-
-#[injectable(ICat)]
-impl Cat
-{
- pub fn new() -> Self
- {
- Self {}
- }
-}
-
-impl ICat for Cat
-{
- fn meow(&self)
- {
- println!("Meow!");
- }
-}
diff --git a/examples/unbound/animals/dog.rs b/examples/unbound/animals/dog.rs
deleted file mode 100644
index 84959c0..0000000
--- a/examples/unbound/animals/dog.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-use syrette::injectable;
-
-use crate::interfaces::dog::IDog;
-
-pub struct Dog {}
-
-#[injectable(IDog)]
-impl Dog
-{
- pub fn new() -> Self
- {
- Self {}
- }
-}
-
-impl IDog for Dog
-{
- fn woof(&self)
- {
- println!("Woof!");
- }
-}
diff --git a/examples/unbound/animals/human.rs b/examples/unbound/animals/human.rs
deleted file mode 100644
index 56764d3..0000000
--- a/examples/unbound/animals/human.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-use syrette::injectable;
-use syrette::ptr::TransientPtr;
-
-use crate::interfaces::animal_store::IAnimalStore;
-use crate::interfaces::human::IHuman;
-
-pub struct Human
-{
- animal_store: TransientPtr<dyn IAnimalStore>,
-}
-
-#[injectable(IHuman)]
-impl Human
-{
- pub fn new(animal_store: TransientPtr<dyn IAnimalStore>) -> Self
- {
- Self { animal_store }
- }
-}
-
-impl IHuman for Human
-{
- fn make_pets_make_sounds(&self)
- {
- let dog = self.animal_store.get_dog();
-
- println!("Hi doggy!");
-
- dog.woof();
-
- let cat = self.animal_store.get_cat();
-
- println!("Hi kitty!");
-
- cat.meow();
- }
-}
diff --git a/examples/unbound/animals/mod.rs b/examples/unbound/animals/mod.rs
deleted file mode 100644
index 5444978..0000000
--- a/examples/unbound/animals/mod.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub mod cat;
-pub mod dog;
-pub mod human;
diff --git a/examples/unbound/bootstrap.rs b/examples/unbound/bootstrap.rs
deleted file mode 100644
index 61e5326..0000000
--- a/examples/unbound/bootstrap.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-use std::rc::Rc;
-
-use anyhow::Result;
-use syrette::di_container::blocking::prelude::*;
-
-use crate::animal_store::AnimalStore;
-use crate::animals::dog::Dog;
-use crate::animals::human::Human;
-use crate::interfaces::animal_store::IAnimalStore;
-use crate::interfaces::dog::IDog;
-use crate::interfaces::human::IHuman;
-
-pub fn bootstrap() -> Result<Rc<DIContainer>>
-{
- let mut di_container = DIContainer::new();
-
- di_container
- .bind::<dyn IDog>()
- .to::<Dog>()?
- .in_singleton_scope()?;
-
- di_container.bind::<dyn IHuman>().to::<Human>()?;
-
- di_container
- .bind::<dyn IAnimalStore>()
- .to::<AnimalStore>()?;
-
- Ok(di_container)
-}
diff --git a/examples/unbound/interfaces/animal_store.rs b/examples/unbound/interfaces/animal_store.rs
deleted file mode 100644
index dc8a4c3..0000000
--- a/examples/unbound/interfaces/animal_store.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-use syrette::ptr::{SingletonPtr, TransientPtr};
-
-use crate::interfaces::cat::ICat;
-use crate::interfaces::dog::IDog;
-
-pub trait IAnimalStore
-{
- fn get_dog(&self) -> SingletonPtr<dyn IDog>;
-
- fn get_cat(&self) -> &TransientPtr<dyn ICat>;
-}
diff --git a/examples/unbound/interfaces/cat.rs b/examples/unbound/interfaces/cat.rs
deleted file mode 100644
index 8650802..0000000
--- a/examples/unbound/interfaces/cat.rs
+++ /dev/null
@@ -1,4 +0,0 @@
-pub trait ICat
-{
- fn meow(&self);
-}
diff --git a/examples/unbound/interfaces/dog.rs b/examples/unbound/interfaces/dog.rs
deleted file mode 100644
index 4211c27..0000000
--- a/examples/unbound/interfaces/dog.rs
+++ /dev/null
@@ -1,4 +0,0 @@
-pub trait IDog
-{
- fn woof(&self);
-}
diff --git a/examples/unbound/interfaces/human.rs b/examples/unbound/interfaces/human.rs
deleted file mode 100644
index dc20194..0000000
--- a/examples/unbound/interfaces/human.rs
+++ /dev/null
@@ -1,4 +0,0 @@
-pub trait IHuman
-{
- fn make_pets_make_sounds(&self);
-}
diff --git a/examples/unbound/interfaces/mod.rs b/examples/unbound/interfaces/mod.rs
deleted file mode 100644
index bd9f848..0000000
--- a/examples/unbound/interfaces/mod.rs
+++ /dev/null
@@ -1,4 +0,0 @@
-pub mod animal_store;
-pub mod cat;
-pub mod dog;
-pub mod human;
diff --git a/examples/unbound/main.rs b/examples/unbound/main.rs
deleted file mode 100644
index 29fa0d4..0000000
--- a/examples/unbound/main.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-#![deny(clippy::all)]
-#![deny(clippy::pedantic)]
-#![allow(clippy::module_name_repetitions)]
-
-mod animal_store;
-mod animals;
-mod bootstrap;
-mod interfaces;
-
-use anyhow::Result;
-use syrette::di_container::blocking::prelude::*;
-
-use crate::bootstrap::bootstrap;
-use crate::interfaces::dog::IDog;
-use crate::interfaces::human::IHuman;
-
-fn main() -> Result<()>
-{
- println!("Hello, world!");
-
- let di_container = bootstrap()?;
-
- let dog = di_container.get::<dyn IDog>()?.singleton()?;
-
- dog.woof();
-
- let human = di_container.get::<dyn IHuman>()?.transient()?;
-
- human.make_pets_make_sounds();
-
- Ok(())
-}