aboutsummaryrefslogtreecommitdiff
path: root/examples/async-factory/main.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2023-08-04 15:24:32 +0200
committerHampusM <hampus@hampusmat.com>2023-08-04 15:25:58 +0200
commit14e45fe9aa2431120cfd6a7240f8bb94e45e730d (patch)
tree72bceb0580801ec1d59fc7f79e609f0ac7c53681 /examples/async-factory/main.rs
parentdce6bfc2321c0041fef5a2cb368ff45ba089198b (diff)
refactor!: remove async_closure macro from API
BREAKING CHANGE: The async_closure macro has been removed. This is because it is completely out of scope for this crate
Diffstat (limited to 'examples/async-factory/main.rs')
-rw-r--r--examples/async-factory/main.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/examples/async-factory/main.rs b/examples/async-factory/main.rs
index b9beded..76efb2f 100644
--- a/examples/async-factory/main.rs
+++ b/examples/async-factory/main.rs
@@ -7,7 +7,7 @@ use std::time::Duration;
use anyhow::Result;
use syrette::di_container::asynchronous::prelude::*;
use syrette::ptr::TransientPtr;
-use syrette::{async_closure, declare_default_factory, factory};
+use syrette::{declare_default_factory, factory};
use tokio::time::sleep;
trait IFoo: Send + Sync
@@ -77,10 +77,12 @@ async fn main() -> Result<()>
di_container
.bind::<IFooFactory>()
.to_async_factory(&|_| {
- async_closure!(|cnt| {
- let foo_ptr = Box::new(Foo::new(cnt));
+ Box::new(|cnt| {
+ Box::pin(async move {
+ let foo_ptr = Box::new(Foo::new(cnt));
- foo_ptr as Box<dyn IFoo>
+ foo_ptr as Box<dyn IFoo>
+ })
})
})
.await?;
@@ -88,13 +90,15 @@ async fn main() -> Result<()>
di_container
.bind::<dyn IPerson>()
.to_async_default_factory(&|_| {
- async_closure!(|| {
- // Do some time demanding thing...
- sleep(Duration::from_secs(1)).await;
+ Box::new(|| {
+ Box::pin(async {
+ // Do some time demanding thing...
+ sleep(Duration::from_secs(1)).await;
- let person = TransientPtr::new(Person::new("Bob".to_string()));
+ let person = TransientPtr::new(Person::new("Bob".to_string()));
- person as TransientPtr<dyn IPerson>
+ person as TransientPtr<dyn IPerson>
+ })
})
})
.await?;