pub trait Scheduler: Send + Sync {
// Required methods
fn schedule(&self, project: &Project) -> Result<Schedule, ScheduleError>;
fn is_feasible(&self, project: &Project) -> FeasibilityResult;
fn explain(&self, project: &Project, task: &TaskId) -> Explanation;
}Expand description
Core scheduling abstraction
Required Methods§
Sourcefn schedule(&self, project: &Project) -> Result<Schedule, ScheduleError>
fn schedule(&self, project: &Project) -> Result<Schedule, ScheduleError>
Compute a schedule for the given project
Sourcefn is_feasible(&self, project: &Project) -> FeasibilityResult
fn is_feasible(&self, project: &Project) -> FeasibilityResult
Check if a schedule is feasible without computing it
Sourcefn explain(&self, project: &Project, task: &TaskId) -> Explanation
fn explain(&self, project: &Project, task: &TaskId) -> Explanation
Explain why a particular scheduling decision was made