pkg/utils/retry/errors.go (29 lines of code) (raw):
package retry
// Retriable is the retry interface
type Retriable interface {
Retry() bool
}
// DefaultRetriable is the default retryable
type DefaultRetriable struct {
retry bool
}
// Retry does the retry
func (dr DefaultRetriable) Retry() bool {
return dr.retry
}
// NewRetriable creates a new Retriable
func NewRetriable(retry bool) Retriable {
return DefaultRetriable{
retry: retry,
}
}
// RetriableError interface
type RetriableError interface {
Retriable
error
}
// DefaultRetriableError is the default retriable error
type DefaultRetriableError struct {
Retriable
error
}
// NewRetriableError returns a new retriable error
func NewRetriableError(retriable Retriable, err error) RetriableError {
return &DefaultRetriableError{
retriable,
err,
}
}