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, ) -> Result<LoopRateLimiter, CuError>
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
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