From 23b8427ae95e15a15c6db87fa9343be9a181029d Mon Sep 17 00:00:00 2001 From: Vladimir Bauer Date: Fri, 16 Aug 2024 15:05:00 +0500 Subject: [PATCH] EwmaNormalizedETA --- decor/eta.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/decor/eta.go b/decor/eta.go index 1732fb75..38a348a4 100644 --- a/decor/eta.go +++ b/decor/eta.go @@ -33,13 +33,18 @@ func (f TimeNormalizerFunc) Normalize(src time.Duration) time.Duration { // decorator to work correctly you have to measure each iteration's duration // and pass it to one of the (*Bar).EwmaIncr... family methods. func EwmaETA(style TimeStyle, age float64, wcc ...WC) Decorator { + return EwmaNormalizedETA(style, age, nil, wcc...) +} + +// EwmaNormalizedETA same as EwmaETA but with TimeNormalizer option. +func EwmaNormalizedETA(style TimeStyle, age float64, normalizer TimeNormalizer, wcc ...WC) Decorator { var average ewma.MovingAverage if age == 0 { average = ewma.NewMovingAverage() } else { average = ewma.NewMovingAverage(age) } - return MovingAverageETA(style, NewThreadSafeMovingAverage(average), nil, wcc...) + return MovingAverageETA(style, NewThreadSafeMovingAverage(average), normalizer, wcc...) } // MovingAverageETA decorator relies on MovingAverage implementation to calculate its average.