rate

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrLimitExceed = errors.New("rate limit exceed")

Functions

This section is empty.

Types

type Limiter

type Limiter[T any] struct {
	// contains filtered or unexported fields
}

func NewRateLimiter

func NewRateLimiter[T any](storage Storage[T], every time.Duration, allowN int) *Limiter[T]

func (*Limiter[T]) Del

func (r *Limiter[T]) Del(name string) error

func (*Limiter[T]) DelData

func (r *Limiter[T]) DelData(name string) error

func (*Limiter[T]) DelLimiter

func (r *Limiter[T]) DelLimiter(name string) error

func (*Limiter[T]) Get

func (r *Limiter[T]) Get(name string) (data *T, err error)

func (*Limiter[T]) GetWaiteTime

func (r *Limiter[T]) GetWaiteTime(name string) time.Duration

func (*Limiter[T]) Set

func (r *Limiter[T]) Set(name string, data *T, expire time.Duration) error

type MemoryStorage

type MemoryStorage[T any] struct {
	// contains filtered or unexported fields
}

func NewMemoryStorage

func NewMemoryStorage[T any](cleanUpInterval time.Duration) *MemoryStorage[T]

func (*MemoryStorage[T]) Del

func (m *MemoryStorage[T]) Del(name string) error

func (*MemoryStorage[T]) Get

func (m *MemoryStorage[T]) Get(name string) (data *T, err error)

func (*MemoryStorage[T]) Set

func (m *MemoryStorage[T]) Set(name string, data *T, expire time.Duration) error

type RedisStorage

type RedisStorage[T any] struct {
	// contains filtered or unexported fields
}

func NewRedisStorage

func NewRedisStorage[T any](client *redis.Client, serializer encoding.Serializer, key string) *RedisStorage[T]

func (*RedisStorage[T]) Del

func (r *RedisStorage[T]) Del(name string) error

func (*RedisStorage[T]) Get

func (r *RedisStorage[T]) Get(name string) (data *T, err error)

func (*RedisStorage[T]) Set

func (r *RedisStorage[T]) Set(name string, data *T, expire time.Duration) error

type Storage

type Storage[T any] interface {
	Set(name string, data *T, expire time.Duration) error
	Get(name string) (data *T, err error)
	Del(name string) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL