code: func NewBackoffTimeCheck(minFrequency time.Duration, factor int, maxFrequency time.Duration) (*BackoffTimeCheck, error) {
  	if minFrequency <= 0 || factor < 1 || maxFrequency < minFrequency {
  		return nil, fmt.Errorf("minFrequency must be positive, factor at least 1 and maxFrequency at least equal to minFrequency, got %v - %v - %v",
  			minFrequency, factor, maxFrequency)
  	}
  	return &BackoffTimeCheck{
  		frequency:    minFrequency,
  		minFrequency: minFrequency,
  		maxFrequency: maxFrequency,
  		factor:       factor,
  	}, nil
  }
docs: // NewBackoffTimeCheck creates an instance of BackoffTimeCheck.
  // The `minFrequency` indicates how frequently BackoffTimeCheck.Ok() can return true.
  // When Ok() returns true, the allowed frequency is multiplied by `factor`. The
  // resulting frequency is capped by `maxFrequency`.