mod shapes;
pub use shapes::{Interval, Sleep, Timeout, TimeoutOutcome, TimerExt};
#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error)]
#[error("timer cancelled")]
pub struct TimerCancelled;
#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error)]
#[non_exhaustive]
pub enum TimerRegistrationError {
#[error("the context's fiber generation is inactive")]
InactiveContext,
#[error("no usable timer environment is current")]
TimerUnavailable,
#[error("interval period must be nonzero")]
ZeroPeriod,
#[error("timer deadline is out of range")]
DeadlineOutOfRange,
}