pub struct LoopRateLimiter { /* private fields */ }Expand description
Runtime loop limiter that preserves phase with absolute deadlines.
This is intentionally a small runtime helper so generated applications do
not have to open-code loop scheduling policy. Deadlines are tracked against
the provided RobotClock, even when sysclock-perf is enabled for
process-time measurements.
Implementations§
Source§impl LoopRateLimiter
impl LoopRateLimiter
pub fn from_rate_target_hz( rate_target_hz: u64, clock: &RobotClock, ) -> CuResult<Self>
pub fn is_ready(&self, clock: &RobotClock) -> bool
pub fn remaining(&self, clock: &RobotClock) -> Option<CuDuration>
pub fn wait_until_ready(&self, clock: &RobotClock)
pub fn mark_tick(&mut self, clock: &RobotClock)
pub fn limit(&mut self, clock: &RobotClock)
Trait Implementations§
Source§impl Clone for LoopRateLimiter
impl Clone for LoopRateLimiter
Source§fn clone(&self) -> LoopRateLimiter
fn clone(&self) -> LoopRateLimiter
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LoopRateLimiter
impl Debug for LoopRateLimiter
Source§impl PartialEq for LoopRateLimiter
impl PartialEq for LoopRateLimiter
impl Copy for LoopRateLimiter
impl Eq for LoopRateLimiter
impl StructuralPartialEq for LoopRateLimiter
Auto Trait Implementations§
impl Freeze for LoopRateLimiter
impl RefUnwindSafe for LoopRateLimiter
impl Send for LoopRateLimiter
impl Sync for LoopRateLimiter
impl Unpin for LoopRateLimiter
impl UnsafeUnpin for LoopRateLimiter
impl UnwindSafe for LoopRateLimiter
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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