1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
pub mod orchestrate_async;
pub mod orchestrate_hierarchical;
pub mod orchestrate_sync;

pub trait OrchestrationResult {
    fn get_speedup(&self) -> Option<f64>;
    fn get_splits(&self) -> Option<Vec<u32>>;

    fn pretty_print(&self) -> Option<String>;
}

pub trait Orchestrate {
    // call corresponding new() functions
    fn orchestrate(&mut self);
    fn compute_plan(&mut self);
    fn analyse_plan(&self);
    fn return_plan(&self) -> Box<dyn OrchestrationResult>;
}