Commit 3bca1ea

mo khan <mo@mokhan.ca>
2025-04-25 22:43:07
feat: add IsPresent[T](item)
1 parent a05c795
Changed files (2)
pkg/x/types.go
@@ -21,6 +21,10 @@ func IsZero[T comparable](item T) bool {
 	return item == Zero[T]()
 }
 
+func IsPresent[T comparable](item T) bool {
+	return !IsZero[T](item)
+}
+
 func IsPtr[T any](item T) bool {
 	return Is[T](item, reflect.Pointer)
 }
pkg/x/types_test.go
@@ -93,4 +93,20 @@ func TestTypes(t *testing.T) {
 			assert.False(t, IsZero[*http.Client](&http.Client{}))
 		})
 	})
+
+	t.Run("IsPresent", func(t *testing.T) {
+		t.Run("returns false", func(t *testing.T) {
+			assert.False(t, IsPresent[int](0))
+			assert.False(t, IsPresent[bool](false))
+			assert.False(t, IsPresent[string](""))
+			assert.False(t, IsPresent[*http.Client](nil))
+		})
+
+		t.Run("returns true", func(t *testing.T) {
+			assert.True(t, IsPresent[int](1))
+			assert.True(t, IsPresent[bool](true))
+			assert.True(t, IsPresent[string]("hello"))
+			assert.True(t, IsPresent[*http.Client](&http.Client{}))
+		})
+	})
 }