From e381ae3b8649de47ba46925e402946658ac16d20 Mon Sep 17 00:00:00 2001 From: HampusM Date: Tue, 15 Aug 2023 23:15:19 +0200 Subject: fix!: make the factory macro not change its input BREAKING CHANGE: The factory macro no longer - Changes the return type to be inside of a TransientPtr - Adds Send + Sync bounds when the threadsafe or the async flag is set - Changes the return type be inside of a BoxFuture when the async flag is set --- src/di_container/asynchronous/mod.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/di_container/asynchronous/mod.rs') diff --git a/src/di_container/asynchronous/mod.rs b/src/di_container/asynchronous/mod.rs index 927f549..d330f4a 100644 --- a/src/di_container/asynchronous/mod.rs +++ b/src/di_container/asynchronous/mod.rs @@ -657,7 +657,8 @@ mod tests use crate::private::castable_factory::threadsafe::ThreadsafeCastableFactory; #[crate::factory(threadsafe = true)] - type IUserManagerFactory = dyn Fn(Vec) -> dyn IUserManager; + type IUserManagerFactory = + dyn Fn(Vec) -> TransientPtr + Send + Sync; let di_container = AsyncDIContainer::new(); @@ -752,7 +753,8 @@ mod tests use crate::private::castable_factory::threadsafe::ThreadsafeCastableFactory; #[crate::factory(threadsafe = true)] - type IUserManagerFactory = dyn Fn(Vec) -> dyn IUserManager; + type IUserManagerFactory = + dyn Fn(Vec) -> TransientPtr + Send + Sync; let di_container = AsyncDIContainer::new(); -- cgit v1.2.3-18-g5258