pub trait AbstractPriorities<Step> : Sized + std::string::ToString {
fn get_priority_of_step(&self, step : &Step) -> i32;
}
pub struct GenericProcessPriorities<Priorities : std::string::ToString> {
pub specific : Priorities,
pub randomize : bool
}
impl<Priorities : std::string::ToString> std::string::ToString for GenericProcessPriorities<Priorities> {
fn to_string(&self) -> String {
if self.randomize {
format!("randomize {}", self.specific.to_string())
} else {
self.specific.to_string()
}
}
}
impl<Priorities : std::string::ToString> GenericProcessPriorities<Priorities> {
pub fn new(specific: Priorities, randomize: bool) -> Self {
GenericProcessPriorities { specific, randomize }
}
}