q3rcon-proxy/option.go

25 lines
517 B
Go

package udpproxy
import (
"time"
"github.com/charmbracelet/log"
)
// Option is a functional option type that allows us to configure the Client.
type Option func(*Client)
// WithSessionTimeout is a functional option to set the session timeout.
func WithSessionTimeout(timeout time.Duration) Option {
return func(c *Client) {
if timeout < time.Minute {
log.Warnf(
"cannot set stale session timeout to less than 1 minute.. defaulting to 20 minutes",
)
return
}
c.sessionTimeout = timeout
}
}