code: func New(rate int, per time.Duration) *RateLimiter {
  	nano := uint64(per)
  	if nano < 1 {
  		nano = uint64(time.Second)
  	}
  	if rate < 1 {
  		rate = 1
  	}
  
  	return &RateLimiter{
  		rate:      uint64(rate),        // store the rate
  		allowance: uint64(rate) * nano, // set our allowance to max in the beginning
  		max:       uint64(rate) * nano, // remember our maximum allowance
  		unit:      nano,                // remember our unit size
  
  		lastCheck: unixNano(),
  	}
  }
docs: // New creates a new rate limiter instance