Commit c2eecab

mo khan <mo@mokhan.ca>
2022-09-24 02:58:53
feat: add helper to see if slice contains an item
1 parent 2ab03d3
Changed files (2)
pkg/x/iterate.go
@@ -20,3 +20,8 @@ func FindAll[T any](items []T, predicate Predicate[T]) []T {
 	}
 	return results
 }
+
+func Contains[T comparable](items []T, predicate Predicate[T]) bool {
+	item := Find[T](items, predicate)
+	return item != Default[T]()
+}
pkg/x/iterate_test.go
@@ -49,3 +49,25 @@ func TestFindAll(t *testing.T) {
 		assert.Empty(t, results)
 	})
 }
+
+func TestContains(t *testing.T) {
+	t.Run("returns true", func(t *testing.T) {
+		items := []int{1, 2, 3, 4, 5}
+
+		result := Contains(items, func(item int) bool {
+			return item == 3
+		})
+
+		assert.True(t, result)
+	})
+
+	t.Run("returns false", func(t *testing.T) {
+		items := []int{1, 2, 3, 4, 5}
+
+		result := Contains(items, func(item int) bool {
+			return item == 7
+		})
+
+		assert.False(t, result)
+	})
+}