move let bindings magic to bindings.ml

This commit is contained in:
Swrup 2022-02-02 19:16:53 +01:00
parent 38a0717d54
commit 4b40395e08
5 changed files with 58 additions and 66 deletions

17
src/bindings.ml Normal file
View file

@ -0,0 +1,17 @@
(* let bindings for early return when encountering an error *)
(* see https://ocaml.org/releases/4.13/htmlman/bindingops.html *)
let ( let^? ) o f =
match o with
| Error e -> Error (Format.sprintf "db error: %s" (Caqti_error.show e))
| Ok None -> Error "db error"
| Ok (Some x) -> f x
let ( let^ ) o f =
match o with
| Error e -> Error (Format.sprintf "db error: %s" (Caqti_error.show e))
| Ok x -> f x
let ( let* ) o f =
match o with
| Error e -> Error (Format.sprintf "%s" e)
| Ok x -> f x