github.com/anchore/syft@v1.38.2/internal/string_helpers.go (about) 1 package internal 2 3 import "strings" 4 5 // HasAnyOfPrefixes returns an indication if the given string has any of the given prefixes. 6 func HasAnyOfPrefixes(input string, prefixes ...string) bool { 7 for _, prefix := range prefixes { 8 if strings.HasPrefix(input, prefix) { 9 return true 10 } 11 } 12 13 return false 14 } 15 16 // HasAnyOfSuffixes returns an indication if the given string has any of the given suffixes. 17 func HasAnyOfSuffixes(input string, suffixes ...string) bool { 18 for _, suffix := range suffixes { 19 if strings.HasSuffix(input, suffix) { 20 return true 21 } 22 } 23 24 return false 25 } 26 27 func TruncateMiddleEllipsis(input string, maxLen int) string { 28 if len(input) <= maxLen { 29 return input 30 } 31 return input[:maxLen/2] + "..." + input[len(input)-(maxLen/2):] 32 } 33 34 func StringInSlice(a string, list []string) bool { 35 for _, b := range list { 36 if b == a { 37 return true 38 } 39 } 40 return false 41 } 42 43 func SplitAny(s string, seps string) []string { 44 splitter := func(r rune) bool { 45 return strings.ContainsRune(seps, r) 46 } 47 result := strings.FieldsFunc(s, splitter) 48 if len(result) == 0 { 49 return []string{s} 50 } 51 return result 52 }