pub trait ITaskManager {
// Required methods
fn create_task(
&self,
task: NewTask
) -> Pin<Box<dyn Future<Output = Result<TaskId, AtexError>> + Send + 'static>>;
fn schedule_periodic_now(
&self,
name: &str
) -> Pin<Box<dyn Future<Output = Result<(), AtexError>> + Send + 'static>>;
fn manual_execute_periodic(
&self,
name: &str
) -> Pin<Box<dyn Future<Output = Result<TaskStatus, AtexError>> + Send + 'static>>;
fn manual_execute_task(
&self,
task_id: TaskId
) -> Pin<Box<dyn Future<Output = Result<TaskStatus, AtexError>> + Send + 'static>>;
fn get(
&self,
id: TaskId
) -> Pin<Box<dyn Future<Output = Result<Option<Task>, AtexError>> + Send + 'static>>;
fn run(
&self
) -> Pin<Box<dyn Future<Output = Result<(), AtexError>> + Send + 'static>>;
}