38 lines
571 B
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
|
|
}
|
|
}
|