aboutsummaryrefslogtreecommitdiff
path: root/options/options.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2025-01-11 12:23:31 +0100
committerStefan Majewsky <majewsky@gmx.net>2025-01-11 12:23:31 +0100
commit7eec3798588243c493791a421e6224680870d0e2 (patch)
treee6893f9c883c2e3d4d453ae3d54756b13c32e222 /options/options.go
parent49a7790edc4ec9526a7b846399339068990ce7de (diff)
downloadgo-gg-7eec3798588243c493791a421e6224680870d0e2.tar.gz
add options.IsNoneOrZero
Also, add the tests for IsSomeAnd and IsNoneOr that I forgot.
Diffstat (limited to 'options/options.go')
-rw-r--r--options/options.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/options/options.go b/options/options.go
index e058559..9754e2d 100644
--- a/options/options.go
+++ b/options/options.go
@@ -20,3 +20,11 @@ func FromPointer[T any](value *T) Option[T] {
return Some(*value)
}
}
+
+// IsNoneOrZero returns whether the Option is either empty, or contains a zero value.
+func IsNoneOrZero[T comparable](o Option[T]) bool {
+ return o.IsNoneOr(func(value T) bool {
+ var zero T
+ return zero == value
+ })
+}