pub trait Scheduler {
// Required methods
fn is_alive(&self) -> bool;
fn sleep_for(&self, duration: Duration) -> Result<(), ()>;
fn sleep_until(&self, instant: Duration) -> Result<(), ()>;
fn wait_for(&self, port: &dyn Port) -> Result<(), ()>;
fn yield_now(&self) -> Result<(), ()>;
}