2016-02-10 18:30:52 +00:00
|
|
|
package slices // import "github.com/influxdata/influxdb/pkg/slices"
|
2015-09-02 22:33:16 +00:00
|
|
|
|
|
|
|
import "strings"
|
|
|
|
|
2015-11-08 12:13:01 +00:00
|
|
|
// Union combines two string sets
|
2015-09-02 22:33:16 +00:00
|
|
|
func Union(setA, setB []string, ignoreCase bool) []string {
|
|
|
|
for _, b := range setB {
|
|
|
|
if ignoreCase {
|
|
|
|
if !ExistsIgnoreCase(setA, b) {
|
|
|
|
setA = append(setA, b)
|
|
|
|
}
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
if !Exists(setA, b) {
|
|
|
|
setA = append(setA, b)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return setA
|
|
|
|
}
|
|
|
|
|
2015-11-08 12:13:01 +00:00
|
|
|
// Exists checks if a string is in a set
|
2015-09-02 22:33:16 +00:00
|
|
|
func Exists(set []string, find string) bool {
|
|
|
|
for _, s := range set {
|
|
|
|
if s == find {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2015-11-08 12:13:01 +00:00
|
|
|
// ExistsIgnoreCase checks if a string is in a set but ignores its case
|
2015-09-02 22:33:16 +00:00
|
|
|
func ExistsIgnoreCase(set []string, find string) bool {
|
|
|
|
find = strings.ToLower(find)
|
|
|
|
for _, s := range set {
|
|
|
|
if strings.ToLower(s) == find {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|