forked from TrueCloudLab/distribution
aea52c7fb5
The exported StringSet type is not necessary for the current use case of validating issues and audiences. The exported fields on VerifyOptions have been changed to require string slices. The collections package has been removed and the StringSet has been moved to the token package, where it is used. Signed-off-by: Stephen J Day <stephen.day@docker.com>
35 lines
773 B
Go
35 lines
773 B
Go
package token
|
|
|
|
// StringSet is a useful type for looking up strings.
|
|
type stringSet map[string]struct{}
|
|
|
|
// NewStringSet creates a new StringSet with the given strings.
|
|
func newStringSet(keys ...string) stringSet {
|
|
ss := make(stringSet, len(keys))
|
|
ss.add(keys...)
|
|
return ss
|
|
}
|
|
|
|
// Add inserts the given keys into this StringSet.
|
|
func (ss stringSet) add(keys ...string) {
|
|
for _, key := range keys {
|
|
ss[key] = struct{}{}
|
|
}
|
|
}
|
|
|
|
// Contains returns whether the given key is in this StringSet.
|
|
func (ss stringSet) contains(key string) bool {
|
|
_, ok := ss[key]
|
|
return ok
|
|
}
|
|
|
|
// Keys returns a slice of all keys in this StringSet.
|
|
func (ss stringSet) keys() []string {
|
|
keys := make([]string, 0, len(ss))
|
|
|
|
for key := range ss {
|
|
keys = append(keys, key)
|
|
}
|
|
|
|
return keys
|
|
}
|