util/slicesx: add AppendNonzero

By request of @agottardo.

Updates #cleanup

Change-Id: I2f02314eb9533b1581e47b66b45b6fb8ac257bb7
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-01-22 10:05:43 -08:00
committed by Brad Fitzpatrick
parent 17022ad0e9
commit 8b65598614
4 changed files with 26 additions and 4 deletions

View File

@@ -137,6 +137,19 @@ func TestFilterNoAllocations(t *testing.T) {
}
}
func TestAppendNonzero(t *testing.T) {
v := []string{"one", "two", "", "four"}
got := AppendNonzero(nil, v)
want := []string{"one", "two", "four"}
if !reflect.DeepEqual(got, want) {
t.Errorf("got %v; want %v", got, want)
}
got = AppendNonzero(v[:0], v)
if !reflect.DeepEqual(got, want) {
t.Errorf("got %v; want %v", got, want)
}
}
func TestAppendMatching(t *testing.T) {
v := []string{"one", "two", "three", "four"}
got := AppendMatching(v[:0], v, func(s string) bool { return len(s) > 3 })