use std::fmt;
pub trait AbstractPriorities<Step> : Sized + fmt::Display {
fn get_priority_of_step(&self, step : &Step) -> i32;
}
pub struct GenericProcessPriorities<Priorities : fmt::Display> {
pub specific : Priorities,
pub randomize : bool
}
impl<Priorities : fmt::Display> fmt::Display for GenericProcessPriorities<Priorities> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
if self.randomize {
write!(f,"randomize {}", self.specific)
} else {
write!(f,"{}", self.specific)
}
}
}
impl<Priorities : fmt::Display> GenericProcessPriorities<Priorities> {
pub fn new(specific: Priorities, randomize: bool) -> Self {
GenericProcessPriorities { specific, randomize }
}
}