fn: fix UnwrapOrFail semantics

This commit is contained in:
Keagan McClelland
2024-08-12 12:03:56 -07:00
parent 4778b146cc
commit 7a7f3bdb2c
4 changed files with 35 additions and 14 deletions

View File

@@ -1,6 +1,10 @@
package fn
import "testing"
import (
"testing"
"github.com/stretchr/testify/require"
)
// Option[A] represents a value which may or may not be there. This is very
// often preferable to nil-able pointers.
@@ -61,14 +65,9 @@ func (o Option[A]) UnwrapOrFunc(f func() A) A {
func (o Option[A]) UnwrapOrFail(t *testing.T) A {
t.Helper()
if o.isSome {
return o.some
}
require.True(t, o.isSome, "Option[%T] was None()", o.some)
t.Fatalf("Option[%T] was None()", o.some)
var zero A
return zero
return o.some
}
// UnwrapOrErr is used to extract a value from an option, if the option is