package http import "time" type RateLimiter struct { ticker *time.Ticker } func NewRateLimiter(apiRateLimitPerSecond int) *RateLimiter { return &RateLimiter{ ticker: time.NewTicker(time.Second / time.Duration(apiRateLimitPerSecond)), } } func (r *RateLimiter) Wait() { <-r.ticker.C }