| Crates.io | future-fn |
| lib.rs | future-fn |
| version | 0.3.4 |
| created_at | 2025-05-05 23:04:58.003868+00 |
| updated_at | 2025-08-02 06:58:37.181401+00 |
| description | A Rust library providing macros to simplify the creation of asynchronous closures with external state captured by move. Useful for structuring asynchronous code with ease and clarity. |
| homepage | |
| repository | https://github.com/crates-dev/future-fn |
| max_upload_size | |
| id | 1661692 |
| size | 18,533 |
A Rust library providing macros to simplify the creation of asynchronous closures with external state captured by move. Useful for structuring asynchronous code with ease and clarity.
To install future-fn run cmd:
cargo add future-fn
use future_fn::*;
use std::time::Duration;
use tokio::time::sleep;
let string: String = String::from("test");
let number: i32 = 1;
let future_fn = future_fn!(string, number, {
let tmp_string: String = String::from("test");
assert_eq!(string, tmp_string);
assert_eq!(number, 1);
});
future_fn().await;
let future_fn = future_fn!(string, number, |data| {
let tmp_string: String = String::from("test");
sleep(Duration::from_millis(360)).await;
assert_eq!(string, tmp_string);
assert_eq!(data, 1);
assert_eq!(number, 1);
});
future_fn(1).await;
let future_fn = future_fn!(string, number, |data: i32| {
let tmp_string: String = String::from("test");
sleep(Duration::from_millis(360)).await;
assert_eq!(string, tmp_string);
assert_eq!(data, 1);
assert_eq!(number, 1);
sleep(Duration::from_millis(360)).await;
});
future_fn(1).await;
let future_fn = future_fn!(string, number, |data: i32| {
let tmp_string: String = String::from("test");
sleep(Duration::from_millis(360)).await;
assert_eq!(string, tmp_string);
assert_eq!(data, 1);
assert_eq!(number, 1);
});
future_fn(1).await;
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please open an issue or submit a pull request.
For any inquiries, please reach out to the author at root@ltpp.vip.