Open
Description
When we've been using this library there are often times where it can be useful to apply a function to the interior value of a nullable field before further processing.
While it's a simple utility to write, it feels like it would be an ergonomic to have such a utility exposed as part of this package. Something like
func Map[T1, T2 any](maybeValue Nullable[T1], fn func(value T1) T2) Nullable[T2] {
if !maybeValue.IsSpecified() {
return nil
} else if maybeValue.IsNull() {
return NewNullNullable[T2]()
} else {
// SAFETY: Must is safe to use here as all other states of the nullable.Nullable value
// are checked in the above if blocks.
return NewNullableWithValue(fn(maybeValue.MustGet()))
}
}
With a usage like
result := nullable.Map(maybeValue, func(x int) int { return x + 1 })
Metadata
Metadata
Assignees
Labels
No labels