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 } }