From c614b0f70b672265c3a2a790bb8fc92e09f6fd00 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 1 Oct 2022 22:10:18 +0200 Subject: refactor: stop using the async_trait macro for AsyncInjectable --- src/interfaces/async_injectable.rs | 13 ++++++------- src/libs/mod.rs | 2 -- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'src') 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, + fn resolve<'di_container, 'fut>( + di_container: &'di_container Arc, dependency_history: Vec<&'static str>, - ) -> Result, InjectableError> + ) -> BoxFuture<'fut, Result, 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; -- cgit v1.2.3-18-g5258