Struct spin_sleep::LoopHelper [−][src]
pub struct LoopHelper { /* fields omitted */ }
Expand description
Tool for loop rate reporting and control.
Can report mean rate per second of a loop over a configured
report interval with LoopHelper::report_rate
.
Can limit a loop rate to a desired target using
LoopHelper::loop_sleep
.
Example
use spin_sleep::LoopHelper; let mut loop_helper = LoopHelper::builder() .report_interval_s(0.5) // report every half a second .build_with_target_rate(250.0); // limit to 250 FPS if possible let mut current_fps = None; loop { let delta = loop_helper.loop_start(); // or .loop_start_s() for f64 seconds // compute_something(delta); if let Some(fps) = loop_helper.report_rate() { current_fps = Some(fps.round()); } // render_fps(current_fps); loop_helper.loop_sleep(); // sleeps to acheive a 250 FPS rate }
Implementations
Returns a LoopHelperBuilder
with which to build a
LoopHelper
.
Notifies the helper that a new loop has begun.
Returns the delta, the duration since the last call to loop_start
or loop_start_s
.
Notifies the helper that a new loop has begun.
Returns the delta, the seconds since the last call to loop_start
or loop_start_s
.
Generally called at the end of a loop to sleep until the desired delta (configured with
build_with_target_rate
)
has elapsed. Uses a SpinSleeper
to sleep the thread to provide
improved accuracy. If the delta has already elapsed this method returns immediately.
Generally called at the end of a loop to sleep until the desired delta (configured with
build_with_target_rate
)
has elapsed. Does not use a SpinSleeper
, instead directly
calls thread::sleep
and will never spin. This is less accurate than
loop_sleep
but less CPU intensive.
Returns the mean rate per second recorded since the last report. Returns None
if
the last report was within the configured report_interval
.
Changes the target loop rate
Returns the current target loop rate
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for LoopHelper
impl Send for LoopHelper
impl Sync for LoopHelper
impl Unpin for LoopHelper
impl UnwindSafe for LoopHelper
Blanket Implementations
Mutably borrows from an owned value. Read more