From 7eec3798588243c493791a421e6224680870d0e2 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Sat, 11 Jan 2025 12:23:31 +0100 Subject: add options.IsNoneOrZero Also, add the tests for IsSomeAnd and IsNoneOr that I forgot. --- options/options.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'options/options.go') 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 + }) +} -- cgit v1.2.3