type RetryWithDeadline … type retryWithDeadlineImpl … func NewRetryWithDeadline(maxRetryDuration, minResetPeriod time.Duration, isRetryable func(error) bool, clock clock.Clock) RetryWithDeadline { … } func (r *retryWithDeadlineImpl) reset() { … } func (r *retryWithDeadlineImpl) After(err error) { … } func (r *retryWithDeadlineImpl) ShouldRetry() bool { … }