ytdl-web/pkg/server/options.go

38 lines
571 B
Go

package server
import "log/slog"
type Options struct {
ListenAddr string
ListenPort int
Logger *slog.Logger
}
func DefaultOptions() *Options {
return &Options{
ListenAddr: "127.0.0.1",
ListenPort: 8080,
Logger: slog.Default(),
}
}
type Option func(*Options)
func WithListenAddr(addr string) Option {
return func(o *Options) {
o.ListenAddr = addr
}
}
func WithListenPort(port int) Option {
return func(o *Options) {
o.ListenPort = port
}
}
func WithLogger(logger *slog.Logger) Option {
return func(o *Options) {
o.Logger = logger
}
}