throttle.go
func ThrottledWriter(w io.Writer, bytesPerSec int, maxBurst time.Duration) ThrottlerWriter {
	return &throttledWriter{
		wrap:    w,
		limiter: newRateLimiter(bytesPerSec, maxBurst),
	}
}
func ThrottledWriter(w io.Writer, bytesPerSec int, maxBurst time.Duration) ThrottlerWriter {
	return &throttledWriter{
		wrap:    w,
		limiter: newRateLimiter(bytesPerSec, maxBurst),
	}
}
func ThrottledWriter ( w io . Writer , bytesPerSec int , maxBurst time . Duration ) ThrottlerWriter { return & throttledWriter { wrap : w , limiter : newRateLimiter ( bytesPerSec , maxBurst ) , } }
// ThrottledWriter ensures that writes to `w` never exceeds a specified rate of
// bytes per second. The `maxBurst` duration changes how often the verification is
// done. The smaller the value, the less bursty, but also the more overhead there
// is to the throttling.
ThrottledWriter ensures that writes to w never exceeds a specified rate of bytes per second . The maxBurst duration changes how often the verification is done . The smaller the value the less bursty but also the more overhead there is to the throttling .