Files

49 lines
841 B
Go
Raw Permalink Normal View History

2026-05-05 12:59:36 +02:00
// SPDX-License-Identifier: BSD-3-Clause
2025-03-06 10:57:45 +02:00
package util
2025-03-28 14:50:09 +02:00
import "strings"
2025-03-06 10:57:45 +02:00
// Without return all of x in same order without y
func Without[T comparable](x []T, y T) []T {
var ret []T
for _, v := range x {
if v != y {
ret = append(ret, v)
}
}
return ret
}
// Equivalent return true if x and y are equal when sorted
func Equivalent[T comparable](x, y []T) bool {
if len(x) != len(y) {
return false
}
mp := make(map[T]any)
2025-03-06 10:57:45 +02:00
for _, v := range x {
mp[v] = nil
}
for _, v := range y {
if _, ok := mp[v]; !ok {
return false
}
}
return true
}
2025-03-28 14:50:09 +02:00
// SplitTrim split string and trim whitespace
func SplitTrim(str, sep string) []string {
if len(str) == 0 {
return nil
}
sp := strings.Split(str, sep)
ret := make([]string, 0, len(sp))
for _, v := range sp {
ret = append(ret, strings.TrimSpace(v))
}
return ret
}