use std::fmt;
pub trait AbstractPriorities<DomainSpecificStep> : Sized + fmt::Display {
fn get_priority_of_step(&self, domain_specific_step : &DomainSpecificStep) -> i32;
}
pub struct GenericProcessPriorities<Priorities : fmt::Display> {
pub domain_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.domain_specific)
} else {
write!(f,"{}", self.domain_specific)
}
}
}
impl<Priorities : fmt::Display> GenericProcessPriorities<Priorities> {
pub fn new(domain_specific: Priorities, randomize: bool) -> Self {
GenericProcessPriorities { domain_specific, randomize }
}
}