#![doc = include_str!("../examples/main.rs")]
#![no_std]
#![forbid(unsafe_code)]
#![warn(
anonymous_parameters,
missing_copy_implementations,
missing_debug_implementations,
missing_docs,
nonstandard_style,
rust_2018_idioms,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
unreachable_pub,
unused_extern_crates,
unused_qualifications,
variant_size_differences
)]
#[allow(unused_extern_crates)]
extern crate alloc;
#[cfg_attr(feature = "async-executor", path = "async_executor.rs")]
#[cfg_attr(feature = "async-std", path = "async_std.rs")]
#[cfg_attr(feature = "futures", path = "futures.rs")]
#[cfg_attr(feature = "pasts", path = "pasts.rs")]
#[cfg_attr(feature = "tokio", path = "tokio.rs")]
mod spawn;
pub use async_main_macro::async_main;
pub use self::spawn::LocalSpawner;
pub trait Spawn: Clone {
fn spawn_local(&self, f: impl core::future::Future<Output = ()> + 'static);
#[inline(always)]
fn spawn(&self, f: impl core::future::Future<Output = ()> + Send + 'static) {
self.spawn_local(f)
}
}