@@ -384,7 +384,8 @@ pub(crate) struct Estimator {
384
384
steps : [ f64 ; 16 ] ,
385
385
pos : u8 ,
386
386
full : bool ,
387
- prev : ( u64 , Instant ) ,
387
+ prev_steps : u64 ,
388
+ prev_time : Instant ,
388
389
}
389
390
390
391
impl Estimator {
@@ -393,22 +394,23 @@ impl Estimator {
393
394
steps : [ 0.0 ; 16 ] ,
394
395
pos : 0 ,
395
396
full : false ,
396
- prev : ( 0 , now) ,
397
+ prev_steps : 0 ,
398
+ prev_time : now,
397
399
}
398
400
}
399
401
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 {
403
405
// Reset on backwards seek to prevent breakage from seeking to the end for length determination
404
406
// See https://github.com/console-rs/indicatif/issues/480
405
- if new < self . prev . 0 {
407
+ if new_steps < self . prev_steps {
406
408
self . reset ( now) ;
407
409
}
408
410
return ;
409
411
}
410
412
411
- let elapsed = now - self . prev . 1 ;
413
+ let elapsed = now - self . prev_time ;
412
414
let divisor = delta as f64 ;
413
415
let mut batch = 0.0 ;
414
416
if divisor != 0.0 {
@@ -421,13 +423,15 @@ impl Estimator {
421
423
self . full = true ;
422
424
}
423
425
424
- self . prev = ( new, now) ;
426
+ self . prev_steps = new_steps;
427
+ self . prev_time = now;
425
428
}
426
429
427
430
pub ( crate ) fn reset ( & mut self , now : Instant ) {
428
431
self . pos = 0 ;
429
432
self . full = false ;
430
- self . prev = ( 0 , now) ;
433
+ self . prev_steps = 0 ;
434
+ self . prev_time = now;
431
435
}
432
436
433
437
/// Average time per step in seconds, using rolling buffer of last 15 steps
@@ -448,7 +452,8 @@ impl fmt::Debug for Estimator {
448
452
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
449
453
f. debug_struct ( "Estimate" )
450
454
. 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 )
452
457
. finish ( )
453
458
}
454
459
}
0 commit comments