diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2025-01-11 12:23:31 +0100 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2025-01-11 12:23:31 +0100 |
| commit | 7eec3798588243c493791a421e6224680870d0e2 (patch) | |
| tree | e6893f9c883c2e3d4d453ae3d54756b13c32e222 /options/options.go | |
| parent | 49a7790edc4ec9526a7b846399339068990ce7de (diff) | |
| download | go-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.go | 8 |
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 + }) +} |
