From 4cb3884e24b3cba3347ff93475bbabd6fe18d2fa Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 22 Jul 2022 13:25:45 +0200 Subject: refactor: make factories an optional feature --- examples/factory/bootstrap.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 examples/factory/bootstrap.rs (limited to 'examples/factory/bootstrap.rs') diff --git a/examples/factory/bootstrap.rs b/examples/factory/bootstrap.rs new file mode 100644 index 0000000..5086b1a --- /dev/null +++ b/examples/factory/bootstrap.rs @@ -0,0 +1,24 @@ +use syrette::ptr::InterfacePtr; +use syrette::DIContainer; + +// Interfaces +use crate::interfaces::user::{IUser, IUserFactory}; +// +// Concrete implementations +use crate::user::User; + +pub fn bootstrap() -> DIContainer +{ + let mut di_container: DIContainer = DIContainer::new(); + + di_container + .bind::() + .to_factory(&|name, date_of_birth, password| { + let user: InterfacePtr = + InterfacePtr::new(User::new(name, date_of_birth, password)); + + user + }); + + di_container +} -- cgit v1.2.3-18-g5258