@@ -16,9 +16,12 @@ public static class OptionExtensions
16
16
/// </summary>
17
17
public static void Match < T > (
18
18
this Option < T > option ,
19
- [ InstantHandle ] Action < Option < T > > someAction ,
20
- [ InstantHandle ] Action noneAction )
19
+ [ NotNull , InstantHandle ] Action < Option < T > > someAction ,
20
+ [ NotNull , InstantHandle ] Action noneAction )
21
21
{
22
+ Code . NotNull ( someAction , nameof ( someAction ) ) ;
23
+ Code . NotNull ( noneAction , nameof ( noneAction ) ) ;
24
+
22
25
if ( option . HasValue )
23
26
someAction ( option ) ;
24
27
else
@@ -32,9 +35,14 @@ public static void Match<T>(
32
35
[ Pure ]
33
36
public static TResult Match < T , TResult > (
34
37
this Option < T > option ,
35
- [ InstantHandle ] Func < Option < T > , TResult > someFunc ,
36
- [ InstantHandle ] Func < TResult > noneFunc ) =>
37
- option . HasValue ? someFunc ( option ) : noneFunc ( ) ;
38
+ [ NotNull , InstantHandle ] Func < Option < T > , TResult > someFunc ,
39
+ [ NotNull , InstantHandle ] Func < TResult > noneFunc )
40
+ {
41
+ Code . NotNull ( someFunc , nameof ( someFunc ) ) ;
42
+ Code . NotNull ( noneFunc , nameof ( noneFunc ) ) ;
43
+
44
+ return option . HasValue ? someFunc ( option ) : noneFunc ( ) ;
45
+ }
38
46
39
47
/// <summary>
40
48
/// Returns value of <paramref name="option"/>, or <paramref name="defaultValue"/> if <paramref name="option"/>
@@ -50,7 +58,11 @@ public static TResult Match<T, TResult>(
50
58
[ Pure ]
51
59
public static Option < TResult > Map < T , TResult > (
52
60
this Option < T > option ,
53
- [ InstantHandle ] Func < T , TResult > selectFunc ) =>
54
- option . HasValue ? new Option < TResult > ( selectFunc ( option . Value ) ) : new Option < TResult > ( ) ;
61
+ [ InstantHandle ] Func < T , TResult > selectFunc )
62
+ {
63
+ Code . NotNull ( selectFunc , nameof ( selectFunc ) ) ;
64
+
65
+ return option . HasValue ? new Option < TResult > ( selectFunc ( option . Value ) ) : new Option < TResult > ( ) ;
66
+ }
55
67
}
56
68
}
0 commit comments