From 88a10dcf3a8e2bff12adf8f3301a48c9d6049b0e Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 19 Sep 2022 21:49:05 -0400 Subject: [PATCH] feat(Error): add Error.result/try_ --- src/util/Error.ml | 4 ++++ src/util/Error.mli | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/util/Error.ml b/src/util/Error.ml index c0bc254c..17e27ed1 100644 --- a/src/util/Error.ml +++ b/src/util/Error.ml @@ -8,3 +8,7 @@ let () = | _ -> None) let errorf msg = Fmt.ksprintf msg ~f:(fun s -> raise (Error s)) + +type nonrec 'a result = ('a, string) result + +let try_ f = try Ok (f ()) with Error s -> Error s diff --git a/src/util/Error.mli b/src/util/Error.mli index 8d865e2a..9dab0757 100644 --- a/src/util/Error.mli +++ b/src/util/Error.mli @@ -2,3 +2,7 @@ exception Error of string val errorf : ('a, Format.formatter, unit, 'b) format4 -> 'a (** @raise Error when called *) + +type nonrec 'a result = ('a, string) result + +val try_ : (unit -> 'a) -> 'a result