From cb24cc62fb40d10ba93d8f3874caae98dd5dae4c Mon Sep 17 00:00:00 2001 From: Humam Alhusaini Date: Sat, 12 Jul 2025 09:52:06 -0500 Subject: [PATCH] added member_force and assoc_force --- lib/util.ml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/util.ml b/lib/util.ml index eed1ff0..8dec1a2 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -1,4 +1,5 @@ exception Type_error of string * t +exception Missing_Member of string let typeof = function | `Assoc _ -> "object" @@ -26,6 +27,12 @@ let member name = function | `Assoc obj -> assoc name obj | js -> typerr ("Can't get member '" ^ name ^ "' of non-object type ") js +let assoc_force name obj = try List.assoc name obj with Not_found -> raise (Missing_Member ("There is no member called " ^ name ^ "in the json object")) + +let member_force name = function + | `Assoc obj -> assoc_force name obj + | js -> typerr ("Can't get member '" ^ name ^ "' of non-object type ") js + let rec path l obj = match l with | [] -> Some obj