Skip to content

Commit 2845b7f

Browse files
afontenotdjc
authored andcommitted
Refactor estimator's prev tuple into separate elements
It's easier to read separate state tracking fields for steps and time than to store them together in a single tuple. No functional change intended.
1 parent 36d11e8 commit 2845b7f

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/state.rs

+15-10
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,8 @@ pub(crate) struct Estimator {
384384
steps: [f64; 16],
385385
pos: u8,
386386
full: bool,
387-
prev: (u64, Instant),
387+
prev_steps: u64,
388+
prev_time: Instant,
388389
}
389390

390391
impl Estimator {
@@ -393,22 +394,23 @@ impl Estimator {
393394
steps: [0.0; 16],
394395
pos: 0,
395396
full: false,
396-
prev: (0, now),
397+
prev_steps: 0,
398+
prev_time: now,
397399
}
398400
}
399401

400-
fn record(&mut self, new: u64, now: Instant) {
401-
let delta = new.saturating_sub(self.prev.0);
402-
if delta == 0 || now < self.prev.1 {
402+
fn record(&mut self, new_steps: u64, now: Instant) {
403+
let delta = new_steps.saturating_sub(self.prev_steps);
404+
if delta == 0 || now < self.prev_time {
403405
// Reset on backwards seek to prevent breakage from seeking to the end for length determination
404406
// See https://github.com/console-rs/indicatif/issues/480
405-
if new < self.prev.0 {
407+
if new_steps < self.prev_steps {
406408
self.reset(now);
407409
}
408410
return;
409411
}
410412

411-
let elapsed = now - self.prev.1;
413+
let elapsed = now - self.prev_time;
412414
let divisor = delta as f64;
413415
let mut batch = 0.0;
414416
if divisor != 0.0 {
@@ -421,13 +423,15 @@ impl Estimator {
421423
self.full = true;
422424
}
423425

424-
self.prev = (new, now);
426+
self.prev_steps = new_steps;
427+
self.prev_time = now;
425428
}
426429

427430
pub(crate) fn reset(&mut self, now: Instant) {
428431
self.pos = 0;
429432
self.full = false;
430-
self.prev = (0, now);
433+
self.prev_steps = 0;
434+
self.prev_time = now;
431435
}
432436

433437
/// Average time per step in seconds, using rolling buffer of last 15 steps
@@ -448,7 +452,8 @@ impl fmt::Debug for Estimator {
448452
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
449453
f.debug_struct("Estimate")
450454
.field("steps", &&self.steps[..self.len()])
451-
.field("prev", &self.prev)
455+
.field("prev_steps", &self.prev_steps)
456+
.field("prev_time", &self.prev_time)
452457
.finish()
453458
}
454459
}

0 commit comments

Comments
 (0)