mirror of https://github.com/stashapp/stash.git
35 lines
572 B
Go
35 lines
572 B
Go
package utils
|
|
|
|
// https://gobyexample.com/collection-functions
|
|
|
|
func StrIndex(vs []string, t string) int {
|
|
for i, v := range vs {
|
|
if v == t {
|
|
return i
|
|
}
|
|
}
|
|
return -1
|
|
}
|
|
|
|
func StrInclude(vs []string, t string) bool {
|
|
return StrIndex(vs, t) >= 0
|
|
}
|
|
|
|
func StrFilter(vs []string, f func(string) bool) []string {
|
|
vsf := make([]string, 0)
|
|
for _, v := range vs {
|
|
if f(v) {
|
|
vsf = append(vsf, v)
|
|
}
|
|
}
|
|
return vsf
|
|
}
|
|
|
|
func StrMap(vs []string, f func(string) string) []string {
|
|
vsm := make([]string, len(vs))
|
|
for i, v := range vs {
|
|
vsm[i] = f(v)
|
|
}
|
|
return vsm
|
|
}
|