aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/async_injectable.rs13
-rw-r--r--src/libs/mod.rs2
2 files changed, 6 insertions, 9 deletions
diff --git a/src/interfaces/async_injectable.rs b/src/interfaces/async_injectable.rs
index fb5452b..07a21aa 100644
--- a/src/interfaces/async_injectable.rs
+++ b/src/interfaces/async_injectable.rs
@@ -4,27 +4,26 @@
use std::fmt::Debug;
use std::sync::Arc;
-use async_trait::async_trait;
-
use crate::async_di_container::AsyncDIContainer;
use crate::errors::injectable::InjectableError;
+use crate::future::BoxFuture;
use crate::libs::intertrait::CastFromSync;
use crate::ptr::TransientPtr;
/// Interface for structs that can be injected into or be injected to.
-#[async_trait]
pub trait AsyncInjectable: CastFromSync
{
/// Resolves the dependencies of the injectable.
///
/// # Errors
/// Will return `Err` if resolving the dependencies fails.
- async fn resolve(
- di_container: &Arc<AsyncDIContainer>,
+ fn resolve<'di_container, 'fut>(
+ di_container: &'di_container Arc<AsyncDIContainer>,
dependency_history: Vec<&'static str>,
- ) -> Result<TransientPtr<Self>, InjectableError>
+ ) -> BoxFuture<'fut, Result<TransientPtr<Self>, InjectableError>>
where
- Self: Sized;
+ Self: Sized + 'fut,
+ 'di_container: 'fut;
}
impl Debug for dyn AsyncInjectable
diff --git a/src/libs/mod.rs b/src/libs/mod.rs
index b1c7a74..8d5583d 100644
--- a/src/libs/mod.rs
+++ b/src/libs/mod.rs
@@ -1,5 +1,3 @@
pub mod intertrait;
-#[cfg(feature = "async")]
-pub extern crate async_trait;
pub extern crate linkme;