blob: dde34c0a41da615fed39b5e6973955d138ab1133 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package main
import (
"crypto/sha256"
"encoding/hex"
"net/url"
"strconv"
"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)
}
func HostFromURL(u string) string {
o, err := url.Parse(u)
if err != nil {
return ""
}
h := strings.Split(o.Host, ":")
return h[0]
}
func Sha256Hex(v string) string {
s256 := sha256.New()
s256.Write([]byte(v))
return hex.EncodeToString(s256.Sum(nil))
}
func StringListFromInt(i int64) []string {
return []string{strconv.FormatInt(i, 10)}
}
|