Add specs.
[hope.git] / src / hope_option.erl
CommitLineData
e492ea13
SK
1-module(hope_option).
2
2a40de4f 3
3b156801
SK
4-export_type(
5 [ t/1
6 ]).
e492ea13 7
3b156801
SK
8-export(
9 [ put/2
10 , get/2
11 , map/2
12 ]).
e492ea13
SK
13
14
3b156801
SK
15-type t(A) ::
16 none
17 | {some, A}
18 .
e492ea13
SK
19
20
ed9905af
SK
21-spec put(A, fun((A) -> boolean())) ->
22 t(A).
e492ea13
SK
23put(X, F) ->
24 case F(X)
25 of true -> {some, X}
26 ; false -> none
27 end.
28
ed9905af
SK
29-spec get(t(A), Default :: A) ->
30 A.
e492ea13
SK
31get({some, X}, _) -> X;
32get(none , Y) -> Y.
33
ed9905af
SK
34-spec map(t(A), fun((A) -> (B))) ->
35 t(B).
e492ea13
SK
36map({some, X}, F) -> {some, F(X)};
37map(none , _) -> none.
This page took 0.018103 seconds and 4 git commands to generate.