use auto_impl::auto_impl;
use crate::time::Service;
#[auto_impl(&, Box, Rc)]
pub trait JobCostModel {
fn cost_of_jobs(&self, n: usize) -> Service {
self.job_cost_iter().take(n).sum()
}
fn least_wcet(&self, n: usize) -> Service {
self.job_cost_iter()
.take(n)
.min()
.unwrap_or_else(Service::none)
}
fn job_cost_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Service> + 'a>;
}
mod curve;
mod multiframe;
mod scalar;
pub use curve::{Curve, ExtrapolatingCurve};
pub use multiframe::Multiframe;
pub use scalar::Scalar;
#[cfg(test)]
mod tests;