package server import "golang.org/x/exp/slog" type ServerOptions struct { ListenAddr string ListenPort int Logger *slog.Logger } func DefaultServerOptions() *ServerOptions { return &ServerOptions{ ListenAddr: "127.0.0.1", ListenPort: 8080, Logger: slog.Default(), } } func (o *ServerOptions) WithListenAddr(addr string) *ServerOptions { o.ListenAddr = addr return o } func (o *ServerOptions) WithListenPort(port int) *ServerOptions { o.ListenPort = port return o } func (o *ServerOptions) WithLogger(logger *slog.Logger) *ServerOptions { o.Logger = logger return o }