pub use poee::spawn;
pub use poee::spawn_blocking;
pub use poee::sync_fn;
#[allow(warnings)]
pub mod poee{
use std::future::Future;
use tokio::runtime::Runtime;
use tokio::task::{JoinHandle, JoinError};
pub fn spawn<T:FnOnce() -> ()+ std::marker::Send + 'static>(function: T) -> JoinHandle<T::Output>
{
let task = tokio::spawn(async move {
function();
});
task
}
pub fn spawn_blocking<T:FnOnce() -> ()+ std::marker::Send + 'static>(function: T) -> JoinHandle<T::Output>
{
let blocking_task = tokio::task::spawn_blocking(move || {
function();
});
blocking_task
}
pub fn sync_fn<T:Future+ std::marker::Send + 'static>(function: T){
let rt = Runtime::new().unwrap();
rt.block_on(async {
function.await;
});
}
}