diff --git a/decor/on_complete.go b/decor/on_complete.go index 0a3897b..403b58c 100644 --- a/decor/on_complete.go +++ b/decor/on_complete.go @@ -1,29 +1,20 @@ package decor var ( - _ Decorator = (*onCompleteWrapper)(nil) - _ Wrapper = (*onCompleteWrapper)(nil) + _ Decorator = onCompleteWrapper{} + _ Wrapper = onCompleteWrapper{} ) -// OnComplete returns decorator, which wraps provided decorator with -// sole purpose to display provided message on complete event. +// OnComplete wrap decorator. +// Displays provided message on complete event. // // `decorator` Decorator to wrap -// -// `message` message to display on complete event +// `message` message to display func OnComplete(decorator Decorator, message string) Decorator { if decorator == nil { return nil } - d := &onCompleteWrapper{ - Decorator: decorator, - msg: message, - } - if md, ok := decorator.(*mergeDecorator); ok { - d.Decorator, md.Decorator = md.Decorator, d - return md - } - return d + return onCompleteWrapper{decorator, message} } type onCompleteWrapper struct { @@ -31,13 +22,13 @@ msg string } -func (d *onCompleteWrapper) Decor(s Statistics) string { +func (d onCompleteWrapper) Decor(s Statistics) (string, int) { if s.Completed { - return d.GetConf().FormatMsg(d.msg) + return d.Format(d.msg) } return d.Decorator.Decor(s) } -func (d *onCompleteWrapper) Unwrap() Decorator { +func (d onCompleteWrapper) Unwrap() Decorator { return d.Decorator }