From cde9d4b41a4b37612420ac522bc261147966efa5 Mon Sep 17 00:00:00 2001
From: HampusM <hampus@hampusmat.com>
Date: Thu, 11 Jul 2024 20:48:47 +0200
Subject: refactor: move & rename AnyFactory and AnyThreadsafeFactory traits

---
 src/any_factory.rs                 | 13 -------------
 src/castable_factory/mod.rs        |  9 +++++++--
 src/castable_factory/threadsafe.rs |  9 ++++++---
 src/lib.rs                         |  3 ---
 src/provider/async.rs              | 26 +++++++++++++++++---------
 src/provider/blocking.rs           | 14 ++++++++------
 6 files changed, 38 insertions(+), 36 deletions(-)
 delete mode 100644 src/any_factory.rs

(limited to 'src')

diff --git a/src/any_factory.rs b/src/any_factory.rs
deleted file mode 100644
index 3aee98f..0000000
--- a/src/any_factory.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-//! Interface for any factory to ever exist.
-
-use std::any::Any;
-use std::fmt::Debug;
-
-/// Interface for any factory to ever exist.
-pub trait AnyFactory: Any + Debug
-{
-    fn as_any(&self) -> &dyn Any;
-}
-
-/// Interface for any threadsafe factory to ever exist.
-pub trait AnyThreadsafeFactory: AnyFactory + Send + Sync + Debug {}
diff --git a/src/castable_factory/mod.rs b/src/castable_factory/mod.rs
index 196dc14..0cb2127 100644
--- a/src/castable_factory/mod.rs
+++ b/src/castable_factory/mod.rs
@@ -1,12 +1,17 @@
 use std::any::{type_name, Any};
 use std::fmt::Debug;
 
-use crate::any_factory::AnyFactory;
 use crate::ptr::TransientPtr;
 
 #[cfg(feature = "async")]
 pub mod threadsafe;
 
+/// Interface for any castable factory.
+pub trait AnyCastableFactory: Any + Debug
+{
+    fn as_any(&self) -> &dyn Any;
+}
+
 pub struct CastableFactory<ReturnInterface, DIContainerT>
 where
     ReturnInterface: 'static + ?Sized,
@@ -32,7 +37,7 @@ where
     }
 }
 
-impl<ReturnInterface, DIContainerT> AnyFactory
+impl<ReturnInterface, DIContainerT> AnyCastableFactory
     for CastableFactory<ReturnInterface, DIContainerT>
 where
     ReturnInterface: 'static + ?Sized,
diff --git a/src/castable_factory/threadsafe.rs b/src/castable_factory/threadsafe.rs
index 5935d75..8b1e66d 100644
--- a/src/castable_factory/threadsafe.rs
+++ b/src/castable_factory/threadsafe.rs
@@ -1,9 +1,12 @@
 use std::any::{type_name, Any};
 use std::fmt::Debug;
 
-use crate::any_factory::{AnyFactory, AnyThreadsafeFactory};
+use crate::castable_factory::AnyCastableFactory;
 use crate::ptr::TransientPtr;
 
+/// Interface for any threadsafe castable factory.
+pub trait AnyThreadsafeCastableFactory: AnyCastableFactory + Send + Sync + Debug {}
+
 pub struct ThreadsafeCastableFactory<ReturnInterface, DIContainerT>
 where
     DIContainerT: 'static,
@@ -33,7 +36,7 @@ where
     }
 }
 
-impl<ReturnInterface, DIContainerT> AnyFactory
+impl<ReturnInterface, DIContainerT> AnyCastableFactory
     for ThreadsafeCastableFactory<ReturnInterface, DIContainerT>
 where
     DIContainerT: 'static,
@@ -45,7 +48,7 @@ where
     }
 }
 
-impl<ReturnInterface, DIContainerT> AnyThreadsafeFactory
+impl<ReturnInterface, DIContainerT> AnyThreadsafeCastableFactory
     for ThreadsafeCastableFactory<ReturnInterface, DIContainerT>
 where
     DIContainerT: 'static,
diff --git a/src/lib.rs b/src/lib.rs
index d93acc8..5544faa 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -113,9 +113,6 @@ mod util;
 #[cfg(feature = "factory")]
 mod castable_factory;
 
-#[cfg(feature = "factory")]
-mod any_factory;
-
 #[cfg(test)]
 #[cfg(not(tarpaulin_include))]
 mod test_utils;
diff --git a/src/provider/async.rs b/src/provider/async.rs
index 3875363..6ccb082 100644
--- a/src/provider/async.rs
+++ b/src/provider/async.rs
@@ -16,15 +16,21 @@ pub enum AsyncProvidable<DIContainerT>
     Singleton(ThreadsafeSingletonPtr<dyn AsyncInjectable<DIContainerT>>),
     #[cfg(feature = "factory")]
     Factory(
-        crate::ptr::ThreadsafeFactoryPtr<dyn crate::any_factory::AnyThreadsafeFactory>,
+        crate::ptr::ThreadsafeFactoryPtr<
+            dyn crate::castable_factory::threadsafe::AnyThreadsafeCastableFactory,
+        >,
     ),
     #[cfg(feature = "factory")]
     DefaultFactory(
-        crate::ptr::ThreadsafeFactoryPtr<dyn crate::any_factory::AnyThreadsafeFactory>,
+        crate::ptr::ThreadsafeFactoryPtr<
+            dyn crate::castable_factory::threadsafe::AnyThreadsafeCastableFactory,
+        >,
     ),
     #[cfg(feature = "factory")]
     AsyncDefaultFactory(
-        crate::ptr::ThreadsafeFactoryPtr<dyn crate::any_factory::AnyThreadsafeFactory>,
+        crate::ptr::ThreadsafeFactoryPtr<
+            dyn crate::castable_factory::threadsafe::AnyThreadsafeCastableFactory,
+        >,
     ),
 }
 
@@ -182,8 +188,9 @@ pub enum AsyncFactoryVariant
 #[cfg(feature = "factory")]
 pub struct AsyncFactoryProvider
 {
-    factory:
-        crate::ptr::ThreadsafeFactoryPtr<dyn crate::any_factory::AnyThreadsafeFactory>,
+    factory: crate::ptr::ThreadsafeFactoryPtr<
+        dyn crate::castable_factory::threadsafe::AnyThreadsafeCastableFactory,
+    >,
     variant: AsyncFactoryVariant,
 }
 
@@ -192,7 +199,7 @@ impl AsyncFactoryProvider
 {
     pub fn new(
         factory: crate::ptr::ThreadsafeFactoryPtr<
-            dyn crate::any_factory::AnyThreadsafeFactory,
+            dyn crate::castable_factory::threadsafe::AnyThreadsafeCastableFactory,
         >,
         variant: AsyncFactoryVariant,
     ) -> Self
@@ -302,13 +309,14 @@ mod tests
     {
         use std::any::Any;
 
-        use crate::any_factory::{AnyFactory, AnyThreadsafeFactory};
+        use crate::castable_factory::threadsafe::AnyThreadsafeCastableFactory;
+        use crate::castable_factory::AnyCastableFactory;
         use crate::ptr::ThreadsafeFactoryPtr;
 
         #[derive(Debug)]
         struct FooFactory;
 
-        impl AnyFactory for FooFactory
+        impl AnyCastableFactory for FooFactory
         {
             fn as_any(&self) -> &dyn Any
             {
@@ -316,7 +324,7 @@ mod tests
             }
         }
 
-        impl AnyThreadsafeFactory for FooFactory {}
+        impl AnyThreadsafeCastableFactory for FooFactory {}
 
         let factory_provider = AsyncFactoryProvider::new(
             ThreadsafeFactoryPtr::new(FooFactory),
diff --git a/src/provider/blocking.rs b/src/provider/blocking.rs
index bde3be5..65e315d 100644
--- a/src/provider/blocking.rs
+++ b/src/provider/blocking.rs
@@ -13,9 +13,11 @@ pub enum Providable<DIContainerType>
     Transient(TransientPtr<dyn Injectable<DIContainerType>>),
     Singleton(SingletonPtr<dyn Injectable<DIContainerType>>),
     #[cfg(feature = "factory")]
-    Factory(crate::ptr::FactoryPtr<dyn crate::any_factory::AnyFactory>),
+    Factory(crate::ptr::FactoryPtr<dyn crate::castable_factory::AnyCastableFactory>),
     #[cfg(feature = "factory")]
-    DefaultFactory(crate::ptr::FactoryPtr<dyn crate::any_factory::AnyFactory>),
+    DefaultFactory(
+        crate::ptr::FactoryPtr<dyn crate::castable_factory::AnyCastableFactory>,
+    ),
 }
 
 #[cfg_attr(test, mockall::automock)]
@@ -108,7 +110,7 @@ where
 #[cfg(feature = "factory")]
 pub struct FactoryProvider
 {
-    factory: crate::ptr::FactoryPtr<dyn crate::any_factory::AnyFactory>,
+    factory: crate::ptr::FactoryPtr<dyn crate::castable_factory::AnyCastableFactory>,
     is_default_factory: bool,
 }
 
@@ -116,7 +118,7 @@ pub struct FactoryProvider
 impl FactoryProvider
 {
     pub fn new(
-        factory: crate::ptr::FactoryPtr<dyn crate::any_factory::AnyFactory>,
+        factory: crate::ptr::FactoryPtr<dyn crate::castable_factory::AnyCastableFactory>,
         is_default_factory: bool,
     ) -> Self
     {
@@ -198,13 +200,13 @@ mod tests
     {
         use std::any::Any;
 
-        use crate::any_factory::AnyFactory;
+        use crate::castable_factory::AnyCastableFactory;
         use crate::ptr::FactoryPtr;
 
         #[derive(Debug)]
         struct FooFactory;
 
-        impl AnyFactory for FooFactory
+        impl AnyCastableFactory for FooFactory
         {
             fn as_any(&self) -> &dyn Any
             {
-- 
cgit v1.2.3-18-g5258