package main import ( "net/url" "strings" ) type stringSet struct { values map[string]bool } func NewStringSet(values ...string) *stringSet { s := &stringSet{ values: make(map[string]bool, len(values)), } for _, v := range values { s.Add(v) } return s } func (s *stringSet) Add(v string) { s.values[v] = true } func (s *stringSet) Contains(k string) bool { _, ok := s.values[k] return ok } func URLMustParse(u string) *url.URL { o, err := url.Parse(u) if err != nil { panic(err) } return o } func CompareUpper(lhs, rhs string) bool { return strings.ToUpper(lhs) == strings.ToUpper(rhs) }