pool.go
func NewWriterPool(maxRate int, maxBurst time.Duration) *WriterPool {
	return &WriterPool{
		maxRate:  maxRate,
		maxBurst: maxBurst,
		givenOut: make(map[ThrottlerWriter]struct{}),
	}
}
func NewWriterPool(maxRate int, maxBurst time.Duration) *WriterPool {
	return &WriterPool{
		maxRate:  maxRate,
		maxBurst: maxBurst,
		givenOut: make(map[ThrottlerWriter]struct{}),
	}
}
// NewWriterPool creates a pool that ensures the writers it wraps will
// respect an overall maxRate, with maxBurst resolution. The semantics
// of the wrapped writers are the same as those of using a plain
// ThrottledWriter.