mirror of https://github.com/stashapp/stash.git
52 lines
938 B
Go
52 lines
938 B
Go
package utils
|
|
|
|
import "strconv"
|
|
|
|
// 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
|
|
}
|
|
|
|
// StringSliceToIntSlice converts a slice of strings to a slice of ints.
|
|
// Returns an error if any values cannot be parsed.
|
|
func StringSliceToIntSlice(ss []string) ([]int, error) {
|
|
ret := make([]int, len(ss))
|
|
for i, v := range ss {
|
|
var err error
|
|
ret[i], err = strconv.Atoi(v)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
return ret, nil
|
|
}
|