code: func RetryNWithBackoffCtx(ctx context.Context, backoff Backoff, n int, fn func() error) error {
  	var err error
  	RetryWithBackoffCtx(ctx, backoff, func() error {
  		err = fn()
  		n--
  		if n == 0 {
  			// Break out after n tries
  			return nil
  		}
  		return err
  	})
  	return err
  }
docs: // RetryNWithBackoffCtx takes a context, a Backoff, a maximum number of tries 'n', and a function that returns an error.
  // The function is called until it does not return an error, the context is done, 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.