pub trait TaskExt: 'static {
// Required methods
fn pool(&self) -> TaskPool;
fn state(&self) -> TaskState;
fn join(&self) -> Result<(), BoolError>;
fn pause(&self) -> Result<(), BoolError>;
fn resume(&self) -> Result<(), BoolError>;
fn set_pool(&self, pool: &impl IsA<TaskPool>);
fn set_state(&self, state: TaskState) -> Result<(), BoolError>;
fn start(&self) -> Result<(), BoolError>;
fn stop(&self) -> Result<(), BoolError>;
}