Module Std.ResultSource
include module type of struct include Result end
Results
The type for result values. Either a value Ok v or an error Error e.
ok v is Ok v.
error e is Error e.
val value :
('a : value_or_null) ('e : value_or_null). ('a, 'e) result ->
default:'a ->
'a @@ portablevalue r ~default is v if r is Ok v and default otherwise.
get_ok r is v if r is Ok v and raise otherwise.
get_error r is e if r is Error e and raise otherwise.
val join :
('a : value_or_null) ('e : value_or_null). (('a, 'e) result, 'e) result ->
('a, 'e) result @@ portablejoin rr is r if rr is Ok r and rr if rr is Error _.
val map_error :
('a : value_or_null) ('e : value_or_null) ('f : value_or_null). ('e -> 'f) ->
('a, 'e) result ->
('a, 'f) result @@ portablemap_error f r is Error (f e) if r is Error e and r if r is Ok _.
val fold :
('a : value_or_null) ('c : value_or_null) ('e : value_or_null). ok:('a -> 'c) ->
error:('e -> 'c) ->
('a, 'e) result ->
'c @@ portablefold ~ok ~error r is ok v if r is Ok v and error e if r is Error e.
val iter :
('a : value_or_null) ('e : value_or_null). ('a -> unit) ->
('a, 'e) result ->
unit @@ portableiter f r is f v if r is Ok v and () otherwise.
val iter_error :
('a : value_or_null) ('e : value_or_null). ('e -> unit) ->
('a, 'e) result ->
unit @@ portableiter_error f r is f e if r is Error e and () otherwise.
Predicates and comparisons
is_ok r is true if and only if r is Ok _.
is_error r is true if and only if r is Error _.
val equal :
('a : value_or_null) ('e : value_or_null). ok:('a -> 'a -> bool) ->
error:('e -> 'e -> bool) ->
('a, 'e) result ->
('a, 'e) result ->
bool @@ portableequal ~ok ~error r0 r1 tests equality of r0 and r1 using ok and error to respectively compare values wrapped by Ok _ and Error _.
val compare :
('a : value_or_null) ('e : value_or_null). ok:('a -> 'a -> int) ->
error:('e -> 'e -> int) ->
('a, 'e) result ->
('a, 'e) result ->
int @@ portablecompare ~ok ~error r0 r1 totally orders r0 and r1 using ok and error to respectively compare values wrapped by Ok _ and Error _. Ok _ values are smaller than Error _ values.
Converting
val to_option :
('a : value_or_null) ('e : value_or_null). ('a, 'e) result ->
'a option @@ portableto_option r is r as an option, mapping Ok v to Some v and Error _ to None.