Versions in this module Expand all Collapse all v0 v0.2.0 Mar 14, 2024 Changes in this version + type Equalizer struct + func NewEqualizer(size, reserved int, offset Offset) (*Equalizer, error) + func (eq *Equalizer) Failure(n int) + func (eq *Equalizer) Purge() + func (eq *Equalizer) Reset() + func (eq *Equalizer) Success(n int) + func (eq *Equalizer) TryAcquire() bool + type Limiter interface + Acquire func(ctx context.Context) error + TryAcquire func() bool + type Offset interface + NextIndex func() int + type RandomOffset struct + Len int + func NewRandomOffset(len int) *RandomOffset + func (ro *RandomOffset) NextIndex() int + type Slider struct + func NewSlider(window, slidingInterval time.Duration, capacity int) (*Slider, error) + func (s *Slider) Acquire(ctx context.Context) error + func (s *Slider) TryAcquire() bool + type StepOffset struct + Len int + Step int64 + func NewStepOffset(len, step int) *StepOffset + func (so *StepOffset) NextIndex() int + type TokenBucket struct + func NewTokenBucket(capacity int, refillInterval time.Duration) (*TokenBucket, error) + func (tb *TokenBucket) Acquire(ctx context.Context) error + func (tb *TokenBucket) TryAcquire() bool