code: func (rl *RateLimiter) Limit() bool {
  	// Calculate the number of ns that have passed since our last call
  	now := unixNano()
  	passed := now - atomic.SwapUint64(&rl.lastCheck, now)
  
  	// Add them to our allowance
  	rate := atomic.LoadUint64(&rl.rate)
  	current := atomic.AddUint64(&rl.allowance, passed*rate)
  
  	// Ensure our allowance is not over maximum
  	if max := atomic.LoadUint64(&rl.max); current > max {
  		atomic.AddUint64(&rl.allowance, max-current)
  		current = max
  	}
  
  	// If our allowance is less than one unit, rate-limit!
  	if current < rl.unit {
  		return true
  	}
  
  	// Not limited, subtract a unit
  	atomic.AddUint64(&rl.allowance, -rl.unit)
  	return false
  }
docs: // Limit returns true if rate was exceeded