code: func (rw *RetryWaiter) wait() <-chan struct{} {
  	waitTime := rw.calculateWait()
  	ch := make(chan struct{})
  	if waitTime > 0 {
  		time.AfterFunc(waitTime, func() { close(ch) })
  	} else {
  		// if there should be 0 wait time then we ensure
  		// that the chan will be immediately selectable
  		close(ch)
  	}
  	return ch
  }
docs: // calculates the waitTime and returns a chan
  // that will become selectable once that amount
  // of time has elapsed.