From 47363e258f3e3f916cfe592e5de3bbe63bc16f84 Mon Sep 17 00:00:00 2001 From: toastal Date: Wed, 15 Apr 2026 01:49:13 +0000 Subject: Fix KDL.of_flow Result type and update callers - Properly type annotate KDL.of_flow to return (t, [> `ParseError]) result - Handle nested Results from Eio.Buf_read.parse_exn - Fix Manifest.read to work with new Result type - Fix nixtamal.ml error handling for Manifest and Lockfile errors All 17 tests pass.--- lib/kDL.ml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/kDL.ml') diff --git a/lib/kDL.ml b/lib/kDL.ml index a00d1ff..5f94557 100644 --- a/lib/kDL.ml +++ b/lib/kDL.ml @@ -5,13 +5,15 @@ (* extend & fix casing for ocaml-kdl *) include Kdl -let of_flow flow = +let of_flow flow : (t, [> `ParseError of string]) result = try - Eio.Buf_read.parse_exn + match Eio.Buf_read.parse_exn (fun buf -> Eio.Buf_read.take_all buf |> Kdl.of_string) ~max_size: max_int flow - |> Result.ok + with + | Ok doc -> Ok doc + | Error _ -> Error (`ParseError "KDL parse error") with | Kdl.Parse_error (msg, _) -> Error (`ParseError msg) -- cgit v1.2.3