pub struct RBF<B: ArrivalBound, C: JobCostModel> {
pub wcet: C,
pub arrival_bound: B,
}
Expand description
The canonical request-bound function (RBF), which connects arrival bounds and job-cost models.
Given an arrival model and a job-cost model, the RBF bounds
demand over an interval of length delta
simply as the total
cumulative cost of the maximum number of jobs that can arrive in
an interval of length delta
.
Fields§
§wcet: C
§arrival_bound: B
Implementations§
Source§impl<B: ArrivalBound, C: JobCostModel> RBF<B, C>
impl<B: ArrivalBound, C: JobCostModel> RBF<B, C>
Trait Implementations§
Source§impl<'a, B: ArrivalBound + 'a, C: JobCostModel + 'a> AsRef<dyn RequestBound + 'a> for RBF<B, C>
impl<'a, B: ArrivalBound + 'a, C: JobCostModel + 'a> AsRef<dyn RequestBound + 'a> for RBF<B, C>
Source§fn as_ref<'b>(&'b self) -> &'b (dyn RequestBound + 'a)
fn as_ref<'b>(&'b self) -> &'b (dyn RequestBound + 'a)
Converts this type into a shared reference of the (usually inferred) input type.
Source§impl<B: Clone + ArrivalBound, C: Clone + JobCostModel> Clone for RBF<B, C>
impl<B: Clone + ArrivalBound, C: Clone + JobCostModel> Clone for RBF<B, C>
Source§impl<B: Debug + ArrivalBound, C: Debug + JobCostModel> Debug for RBF<B, C>
impl<B: Debug + ArrivalBound, C: Debug + JobCostModel> Debug for RBF<B, C>
Source§impl<B: ArrivalBound, C: JobCostModel> RequestBound for RBF<B, C>
impl<B: ArrivalBound, C: JobCostModel> RequestBound for RBF<B, C>
Source§fn service_needed(&self, delta: Duration) -> Service
fn service_needed(&self, delta: Duration) -> Service
Bound the total amount of service needed in an interval of length
delta
.Source§fn least_wcet_in_interval(&self, delta: Duration) -> Service
fn least_wcet_in_interval(&self, delta: Duration) -> Service
Expose the smallest WCET of any job encountered in an interval of length
delta
.Source§fn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>
fn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>
Yield an iterator over the interval lengths (i.e., values of
delta
in
RequestBound::service_needed) at which the cumulative demand changes. Read moreAuto Trait Implementations§
impl<B, C> Freeze for RBF<B, C>
impl<B, C> RefUnwindSafe for RBF<B, C>where
C: RefUnwindSafe,
B: RefUnwindSafe,
impl<B, C> Send for RBF<B, C>
impl<B, C> Sync for RBF<B, C>
impl<B, C> Unpin for RBF<B, C>
impl<B, C> UnwindSafe for RBF<B, C>where
C: UnwindSafe,
B: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more