byor 1.0.0

Bring your own runtime!
Documentation
use crate::{runtime::Smol, time::Time};
use smol::Timer;

impl Time for Smol {
    fn sleep(duration: std::time::Duration) -> impl Future<Output = std::time::Instant> {
        Timer::after(duration)
    }
    fn sleep_until(deadline: std::time::Instant) -> impl Future<Output = std::time::Instant> {
        Timer::at(deadline)
    }
    fn interval(duration: std::time::Duration) -> impl futures::Stream<Item = std::time::Instant> {
        Timer::interval(duration)
    }
    fn interval_at(
        start: std::time::Instant,
        duration: std::time::Duration,
    ) -> impl futures::Stream<Item = std::time::Instant> {
        Timer::interval_at(start, duration)
    }
}