package domain import "net/url" type BaseServer struct { key string url *url.URL open bool } func NewBaseServer(key, rawURL string, open bool) (BaseServer, error) { if err := validateServerKey(key); err != nil { return BaseServer{}, ValidationError{ Err: err, Field: "key", } } u, err := parseURL(rawURL) if err != nil { return BaseServer{}, ValidationError{ Err: err, Field: "url", } } return BaseServer{ key: key, url: u, open: open, }, nil } func (b BaseServer) Key() string { return b.key } func (b BaseServer) URL() *url.URL { return b.url } func (b BaseServer) Open() bool { return b.open } func (b BaseServer) IsZero() bool { return b == BaseServer{} } type BaseServers []BaseServer