1use std::{fmt, future::Future};
2
3pub use crate::{handle::JoinHandle, rt::Handle, rt::Runtime};
4
5#[derive(Debug, Copy, Clone)]
6pub struct JoinError;
7
8impl fmt::Display for JoinError {
9 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
10 write!(f, "JoinError")
11 }
12}
13
14impl std::error::Error for JoinError {}
15
16pub fn spawn<F>(fut: F) -> JoinHandle<F::Output>
17where
18 F: Future + 'static,
19{
20 let fut = crate::task::wrap(fut);
21 crate::rt::Runtime::with_current(|rt| rt.spawn(fut))
22}