@@ -19,6 +19,47 @@ type resulter[OK, Err any] interface {
19
19
Err () * Err
20
20
}
21
21
22
+ func TestResultOKOrErr (t * testing.T ) {
23
+ r1 := OK [Result [string , string , struct {}]]("hello" )
24
+ if ok := r1 .OK (); ok == nil {
25
+ t .Errorf ("OK(): %v, expected non-nil OK" , ok )
26
+ }
27
+ if err := r1 .Err (); err != nil {
28
+ t .Errorf ("Err(): %v, expected nil Err" , err )
29
+ }
30
+
31
+ r2 := Err [Result [bool , struct {}, bool ]](true )
32
+ if ok := r2 .OK (); ok != nil {
33
+ t .Errorf ("OK(): %v, expected nil OK" , ok )
34
+ }
35
+ if err := r2 .Err (); err == nil {
36
+ t .Errorf ("Err(): %v, expected non-nil Err" , err )
37
+ }
38
+ }
39
+
40
+ func TestResultResult (t * testing.T ) {
41
+ ok , err , isErr := OK [Result [string , string , int ]]("hello" ).Result ()
42
+ if got , want := ok , "hello" ; got != want {
43
+ t .Errorf ("Result(): ok = %v; expected %v" , got , want )
44
+ }
45
+ if got , want := err , 0 ; got != want {
46
+ t .Errorf ("Result(): err = %v; expected %v" , got , want )
47
+ }
48
+ if got , want := isErr , false ; got != want {
49
+ t .Errorf ("Result(): isErr = %v; expected %v" , got , want )
50
+ }
51
+ ok , err , isErr = Err [Result [string , string , int ]](42 ).Result ()
52
+ if got , want := ok , "" ; got != want {
53
+ t .Errorf ("Result(): ok = %v; expected %v" , got , want )
54
+ }
55
+ if got , want := err , 42 ; got != want {
56
+ t .Errorf ("Result(): err = %v; expected %v" , got , want )
57
+ }
58
+ if got , want := isErr , true ; got != want {
59
+ t .Errorf ("Result(): isErr = %v; expected %v" , got , want )
60
+ }
61
+ }
62
+
22
63
func TestResultLayout (t * testing.T ) {
23
64
// 8 on 64-bit, 4 on 32-bit
24
65
ptrSize := unsafe .Sizeof (uintptr (0 ))
@@ -70,24 +111,6 @@ func TestResultLayout(t *testing.T) {
70
111
}
71
112
}
72
113
73
- func TestResultOKOrErr (t * testing.T ) {
74
- r1 := OK [Result [string , string , struct {}]]("hello" )
75
- if ok := r1 .OK (); ok == nil {
76
- t .Errorf ("OK(): %v, expected non-nil OK" , ok )
77
- }
78
- if err := r1 .Err (); err != nil {
79
- t .Errorf ("Err(): %v, expected nil Err" , err )
80
- }
81
-
82
- r2 := Err [Result [bool , struct {}, bool ]](true )
83
- if ok := r2 .OK (); ok != nil {
84
- t .Errorf ("OK(): %v, expected nil OK" , ok )
85
- }
86
- if err := r2 .Err (); err == nil {
87
- t .Errorf ("Err(): %v, expected non-nil Err" , err )
88
- }
89
- }
90
-
91
114
func TestAltResult1 (t * testing.T ) {
92
115
type alt1 [Shape , OK , Err any ] struct {
93
116
_ [0 ]OK
0 commit comments