mt-rabbit/options.go

61 lines
1,006 B
Go
Raw Permalink Normal View History

2026-02-20 15:31:13 +03:00
package rabbit
2026-04-03 11:21:13 +03:00
import (
"io"
"log"
"os"
"time"
)
2026-02-20 15:31:13 +03:00
type Option func(*options)
2026-04-02 15:36:37 +03:00
func WithConnectTimeout(t time.Duration) Option {
return func(op *options) {
op.connectTimeout = t
}
}
2026-02-20 15:31:13 +03:00
func WithReconnectDelay(t time.Duration) Option {
return func(op *options) {
op.reconnectDelay = t
}
}
func WithReInitDelay(t time.Duration) Option {
return func(op *options) {
op.reInitDelay = t
}
}
func WithResendDelay(t time.Duration) Option {
return func(op *options) {
op.resendDelay = t
}
}
func WithConsumerRateLimit(t time.Duration) Option {
return func(op *options) {
op.consumerRateLimit = t
}
}
func WithConsumerBurstSize(t int) Option {
return func(op *options) {
op.consumerBurstSize = t
}
}
2026-04-03 11:21:13 +03:00
func WithLogger(l *log.Logger) Option {
return func(op *options) { op.logger = l }
}
func WithLogging(enabled bool) Option {
return func(op *options) {
if enabled {
op.logger = log.New(os.Stdout, "", log.LstdFlags)
} else {
op.logger = log.New(io.Discard, "", 0)
}
}
}