# Macros for efficient development [![Crates.io](https://img.shields.io/crates/v/fus.svg)](https://crates.io/crates/poee) [![Rust](https://img.shields.io/badge/rust-1.56.1%2B-blue.svg?maxAge=3600)](https://gitlab.com/andrew_ryan/poee) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitlab.com/andrew_ryan/poee/-/raw/master/LICENSE) # Examples ### Spawns a new asynchronous task, returning a JoinHandle for it. ```rust #[tokio::main] async fn main() -> Result<(), Box> { poee::spawn(||{ std::fs::write("demo0", "rust").unwrap(); }); fn demo(){ std::fs::write("demo1", "rust").unwrap(); } poee::spawn(demo); Ok(()) } ``` ### Runs the provided closure on a thread where blocking is acceptable. ```rust #[tokio::main] async fn main() -> Result<(), Box> { poee::spawn_blocking(||{ std::fs::write("demo0", "rust").unwrap(); }); fn demo(){ std::fs::write("demo1", "rust").unwrap(); } poee::spawn_blocking(demo); Ok(()) } ``` ### executed on the async code in sync ```rust fn main(){ async fn demo(){ println!("demo"); } poee::sync_fn(demo()); } ```