Add CCResult.get_or_failwith

This commit is contained in:
Hongchang Wu 2018-10-04 20:53:03 -04:00 committed by Simon Cruanes
parent 3b1de9a1c8
commit e8617c4f05
2 changed files with 14 additions and 0 deletions

View file

@ -93,6 +93,15 @@ let get_or e ~default = match e with
| Ok x -> x
| Error _ -> default
let get_or_failwith = function
| Ok x -> x
| Error msg -> failwith msg
(*$T
get_or_failwith (Ok 1) = 1
try ignore @@ get_or_failwith (Error "e"); false with Failure msg -> msg = "e"
*)
let map_or f e ~default = match e with
| Ok x -> f x
| Error _ -> default

View file

@ -84,6 +84,11 @@ val get_exn : ('a, _) t -> 'a
val get_or : ('a, _) t -> default:'a -> 'a
(** [get_or e ~default] returns [x] if [e = Ok x], [default] otherwise. *)
val get_or_failwith : ('a, string) t -> 'a
(** [get_or_failwith e] returns [x] if [e = Ok x], fails otherwise.
@raise Failure with [msg] if [e = Error msg].
@since NEXT_RELEASE *)
val map_or : ('a -> 'b) -> ('a, 'c) t -> default:'b -> 'b
(** [map_or f e ~default] returns [f x] if [e = Ok x], [default] otherwise. *)