diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/async-factory/main.rs | 4 | ||||
-rw-r--r-- | examples/async/interfaces/food.rs | 3 | ||||
-rw-r--r-- | examples/factory/interfaces/user.rs | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/examples/async-factory/main.rs b/examples/async-factory/main.rs index 76efb2f..d368a32 100644 --- a/examples/async-factory/main.rs +++ b/examples/async-factory/main.rs @@ -6,6 +6,7 @@ use std::time::Duration; use anyhow::Result; use syrette::di_container::asynchronous::prelude::*; +use syrette::future::BoxFuture; use syrette::ptr::TransientPtr; use syrette::{declare_default_factory, factory}; use tokio::time::sleep; @@ -16,7 +17,8 @@ trait IFoo: Send + Sync } #[factory(async = true)] -type IFooFactory = dyn Fn(i32) -> dyn IFoo; +type IFooFactory = + dyn Fn(i32) -> BoxFuture<'static, TransientPtr<dyn IFoo>> + Send + Sync; struct Foo { diff --git a/examples/async/interfaces/food.rs b/examples/async/interfaces/food.rs index e85519b..9d88083 100644 --- a/examples/async/interfaces/food.rs +++ b/examples/async/interfaces/food.rs @@ -1,4 +1,5 @@ use syrette::factory; +use syrette::ptr::TransientPtr; pub trait IFood: Send + Sync { @@ -6,4 +7,4 @@ pub trait IFood: Send + Sync } #[factory(threadsafe = true)] -pub type IFoodFactory = dyn Fn() -> dyn IFood; +pub type IFoodFactory = dyn Fn() -> TransientPtr<dyn IFood> + Send + Sync; diff --git a/examples/factory/interfaces/user.rs b/examples/factory/interfaces/user.rs index 75fbc87..aafd0cb 100644 --- a/examples/factory/interfaces/user.rs +++ b/examples/factory/interfaces/user.rs @@ -1,4 +1,5 @@ use syrette::factory; +use syrette::ptr::TransientPtr; pub trait IUser { @@ -8,4 +9,5 @@ pub trait IUser } #[factory] -pub type IUserFactory = dyn Fn(&'static str, &'static str, &'static str) -> dyn IUser; +pub type IUserFactory = + dyn Fn(&'static str, &'static str, &'static str) -> TransientPtr<dyn IUser>; |