func RetryNWithBackoff(backoff Backoff, n int, fn func() error) error {
	return RetryNWithBackoffCtx(context.Background(), backoff, n, fn)
}
func RetryNWithBackoff(backoff Backoff, n int, fn func() error) error {
	return RetryNWithBackoffCtx(context.Background(), backoff, n, fn)
}
func RetryNWithBackoff ( backoff Backoff , n int , fn func ( ) error ) error { return RetryNWithBackoffCtx ( context . Background ( ) , backoff , n , fn ) }
// RetryNWithBackoff takes a Backoff, a maximum number of tries 'n', and a
// function that returns an error. The function is called until either it does
// not return an error or the maximum tries have been reached.
// If the error returned is Retriable, the Retriability of it will be respected.
// If the number of tries is exhausted, the last error will be returned.
RetryNWithBackoff takes a Backoff a maximum number of tries n and a function that returns an error . The function is called until either it does not return an error or the maximum tries have been reached . If the error returned is Retriable the Retriability of it will be respected . If the number of tries is exhausted the last error will be returned .