package cfg import ( "crypto/tls" "net/http" ) type Config struct { BindAddress string Mux http.Handler TLS *tls.Config } func New(addr string, options ...Option) *Config { if addr == "" { addr = ":0" } c := &Config{ BindAddress: addr, Mux: http.DefaultServeMux, } for _, option := range options { option(c) } return c } func (c *Config) Run(server *http.Server) error { if c.TLS != nil { return server.ListenAndServeTLS("", "") } return server.ListenAndServe() }