github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/pkg/scanners/azure/functions/split.go (about) 1 package functions 2 3 import "strings" 4 5 func Split(args ...interface{}) interface{} { 6 if len(args) != 2 { 7 return "" 8 } 9 10 input, ok := args[0].(string) 11 if !ok { 12 return "" 13 } 14 15 switch separator := args[1].(type) { 16 case string: 17 return strings.Split(input, separator) 18 case interface{}: 19 switch separator := separator.(type) { 20 case []string: 21 m := make(map[rune]int) 22 for _, r := range separator { 23 r := rune(r[0]) 24 m[r] = 1 25 } 26 27 splitter := func(r rune) bool { 28 return m[r] == 1 29 } 30 31 return strings.FieldsFunc(input, splitter) 32 } 33 34 } 35 return []string{} 36 }