1
0

util.go 689 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package util
  2. import (
  3. "strings"
  4. "slices"
  5. )
  6. func StandardizeBindingsArray(arr []string) []string {
  7. new := []string{}
  8. for _, s := range arr {
  9. new = append(new, StandardizeBinding(s))
  10. }
  11. return new
  12. }
  13. func StandardizeBinding(binding string) string {
  14. arr := strings.Split(binding, "+")
  15. for i, s := range arr {
  16. lower := strings.ToLower(s)
  17. arr[i] = lower
  18. if strings.HasPrefix(lower, "rune[") && strings.HasSuffix(lower, "]") {
  19. arr[i] = lower[5 : len(s)-1]
  20. }
  21. }
  22. slices.Sort(arr)
  23. return strings.ToLower(strings.Join(arr, "+"))
  24. }
  25. func NonNilLen[T any](slice []T) int {
  26. count := 0
  27. for _, item := range slice {
  28. if any(item) != nil {
  29. count++
  30. }
  31. }
  32. return count
  33. }