INNER CODE UNIT · Rust
expected_duration
lemunozm/ruscii · src/app.rs:115
let expected_duration = time::Duration::from_nanos(1_000_000_000 / self.config.fps as u64);
self.state.run();
let result = panic::catch_unwind(panic::AssertUnwindSafe(|| {
self.window.open();
while self.state.is_running() {
let now = time::Instant::now();
self.window.clear();
self.state.keyboard.consume_key_events();
frame_action(&mut self.state, &mut self.window);
self.window.draw();
self.state.dt = now.elapsed();
self.state.step += 1;
if let Some(time) = expected_duration.checked_sub(self.state.dt) {
thread::sleep(time);