#[derive(Debug)]
struct ScheduledTask {
deadline: some_executor::Instant,
order: usize,
task: crate::SpawnedTask,
}
impl ScheduledTask {
fn new(task: crate::SpawnedTask, order: usize) -> Self {
Self {
deadline: task.imp.poll_after(),
order,
task,
}
}
fn deadline(&self) -> some_executor::Instant {
self.deadline
}
fn into_task(self) -> crate::SpawnedTask {
self.task
}
}
impl PartialEq for ScheduledTask {
fn eq(&self, other: &Self) -> bool {
self.deadline == other.deadline && self.order == other.order
}
}
impl Eq for ScheduledTask {}
impl PartialOrd for ScheduledTask {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
Some(self.cmp(other))
}
}
impl Ord for ScheduledTask {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
other
.deadline
.cmp(&self.deadline)
.then_with(|| other.order.cmp(&self.order))
}
}
#[cfg(not(target_arch = "wasm32"))]
mod stdlib;
#[cfg(not(target_arch = "wasm32"))]
pub use stdlib::*;
#[cfg(target_arch = "wasm32")]
mod wasm;
#[cfg(target_arch = "wasm32")]
pub use wasm::*;