From b0e780d6801b2575471c388d0eab55ed62dba61b Mon Sep 17 00:00:00 2001 From: Ashish Bhat Date: Sat, 29 Jun 2019 15:45:07 +0530 Subject: [PATCH] Added Cutomizable stop to Retry Handling --- retry/retry.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/retry/retry.go b/retry/retry.go index cfb9277..2b93233 100644 --- a/retry/retry.go +++ b/retry/retry.go @@ -9,7 +9,7 @@ func Do(attempts int, sleep time.Duration, fn func() error) error { if err := fn(); err != nil { if s, ok := err.(Stop); ok { // Return the original error for later checking - return s.error + return s.OriginalError } if attempts--; attempts > 0 { @@ -24,5 +24,9 @@ func Do(attempts int, sleep time.Duration, fn func() error) error { // Stop is used to return error and stop retrying // Return Stop{err}, if you want to stop despite Error type Stop struct { - error + OriginalError error +} + +func (stop Stop) Error() string { + return stop.OriginalError.Error() }