Documentation ¶
Index ¶
- Variables
- func AnyKeyToExit(log Logger, cancel context.CancelFunc)
- func NewID() string
- func NewIDFromTimestamp(timestamp time.Time) string
- type Cache
- type CodeGenerator
- type CycleTask
- type ErrorsMap
- type Fifo
- type Logger
- type Randomizer
- type RateLimiter
- type Retry
- type RoutineLimiter
- type SMTP
- type SMTPConfig
- type SafeSlice
- type Scheduler
- type ShutdownFunc
- type ShutdownStack
Constants ¶
This section is empty.
Variables ¶
var (
ErrRateLimited = errors.New("rate limited")
)
Functions ¶
func AnyKeyToExit ¶ added in v0.0.9
func AnyKeyToExit(log Logger, cancel context.CancelFunc)
AnyKeyToExit - реализует выход из приложения после нажатия любой клавици пользователем
func NewIDFromTimestamp ¶ added in v0.0.7
Types ¶
type CodeGenerator ¶
type CodeGenerator struct {
// contains filtered or unexported fields
}
func NewCodeGenerator ¶
func NewCodeGenerator(ttl int, len int, numbers, letters bool) *CodeGenerator
Функция создает генератор кодов валидации
ttl - время жизни кода в минутах len - длинна кода numbers, letters - указывает на то, какие символы можно использовать в генерируемых кодах
func (*CodeGenerator) Generate ¶
func (cg *CodeGenerator) Generate(input string) string
func (*CodeGenerator) GenerateForTime ¶
func (cg *CodeGenerator) GenerateForTime(t time.Time, input string) string
func (*CodeGenerator) Validate ¶
func (cg *CodeGenerator) Validate(input, code string) bool
func (*CodeGenerator) ValidateForTime ¶
type CycleTask ¶
type CycleTask struct {
// contains filtered or unexported fields
}
Структура для работы с циклической задачей
func NewCycleTask ¶
func NewCycleTask(task func()) *CycleTask
Функция создает новую структуру для решения повторяющихся задач
type Logger ¶
type Logger interface {
Logf(format string, args ...interface{})
}
Logger is a simple interface for logging
type Randomizer ¶
type Randomizer struct{}
func NewRandomizer ¶
func NewRandomizer() *Randomizer
func (*Randomizer) PseudoString ¶
func (r *Randomizer) PseudoString(seed int64, count int, alphabet, numbers, symbols bool) string
type RateLimiter ¶
type RateLimiter struct {
// contains filtered or unexported fields
}
func NewRateLimiter ¶
func NewRateLimiter(seconds int64) *RateLimiter
func (*RateLimiter) Check ¶
func (rl *RateLimiter) Check(key string) (err error)
func (*RateLimiter) Deinit ¶
func (rl *RateLimiter) Deinit()
func (*RateLimiter) Set ¶
func (rl *RateLimiter) Set(key string)
type Retry ¶ added in v0.0.7
type Retry struct {
// contains filtered or unexported fields
}
type RoutineLimiter ¶
type RoutineLimiter struct {
// contains filtered or unexported fields
}
func NewRoutineLimiter ¶
func NewRoutineLimiter(max int) *RoutineLimiter
NewRoutineLimiter Создает новую структуру для ограничения количества одновременно запущенных горутин
func (*RoutineLimiter) Run ¶
func (r *RoutineLimiter) Run(task func())
Run запускает задачу в горутине в случае если доступных слотов нет, то ожидает освобождения слота перед запуском задачи
type SMTP ¶
type SMTP struct {
// contains filtered or unexported fields
}
SMTP - структура для отправки писем.
func NewConfiguredSMTP ¶
NewConfiguredSMTP - конструктор для создания SMTP с настроенными параметрами.
func NewSMTP ¶
func NewSMTP(config SMTPConfig) *SMTP
NewSMTP - конструктор для создания SMTP с настройками из конфига.
func (*SMTP) SendHTMLEmail ¶
Метод отправляет HTML письмо указанному адресату.
func (*SMTP) SendTextEmail ¶
Метод отправляет текстовое письмо указанному адресату.
type SMTPConfig ¶
type SMTPConfig struct { Host string `long:"host" env:"HOST" description:"smtp host value"` Port string `long:"port" env:"PORT" description:"smtp port value"` Name string `long:"name" env:"NAME" description:"smtp name value"` Email string `long:"email" env:"EMAIL" description:"smtp email value"` Login string `long:"login" env:"LOGIN" description:"smtp login value"` Password string `long:"password" env:"PASSWORD" description:"smtp password value"` }
type SafeSlice ¶ added in v0.0.5
type SafeSlice[T any] struct { // contains filtered or unexported fields }
func NewSafeSlice ¶ added in v0.0.5
type Scheduler ¶
func NewSchedulerWRoutineLimiter ¶ added in v0.0.7
func NewSchedulerWRoutineLimiter[I any, O any](rl *RoutineLimiter, task func(I) O) *Scheduler[I, O]
type ShutdownFunc ¶
type ShutdownStack ¶
type ShutdownStack struct {
// contains filtered or unexported fields
}
ShutdownStack структура для плавного отключения приложения
Содержит стек функций которые необходимо выполнить перед завершением приложения и методы для их добавления и выполнения
func NewShutdownStack ¶
func NewShutdownStack(logger Logger) *ShutdownStack
NewShutdownStack создает сруктуру для плавного отключения приложения
func (*ShutdownStack) Add ¶
func (st *ShutdownStack) Add(fn ...ShutdownFunc)
Add добавляет функции которые необходимо выполнить перед завершением приложения в стек