From ad33454a204aa5791445e7d15f02ba0447fff85e Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Mon, 12 Oct 2026 11:58:25 -0300 Subject: relation scan with enumerable and release --- test/unit/evaluators/FOL.ml | 13 +++---------- test/unit/kernel/EphemeralRelation.ml | 10 +++++----- test/unit/kernel/SubstantialRelation.ml | 8 +++----- 3 files changed, 11 insertions(+), 20 deletions(-) (limited to 'test/unit') diff --git a/test/unit/evaluators/FOL.ml b/test/unit/evaluators/FOL.ml index 3254258..1782b2e 100644 --- a/test/unit/evaluators/FOL.ml +++ b/test/unit/evaluators/FOL.ml @@ -31,11 +31,7 @@ module Make (S : Abstract.Storage.STORAGE) (C : Helpers.Storage.CONFIGURATOR) = let drain result = let open Utilities.Result in - let* enumerable = Protocols.Enumerable.require result in - let* cursor = Protocols.Enumerable.enumerate enumerable in - let* scan = Protocols.Cursor.require cursor in - let* tuples = Protocols.Cursor.drain scan () in - Protocols.Handle.release cursor; + let* tuples = Protocols.Enumerable.scan result (fun scan -> Protocols.Cursor.drain scan ()) in Protocols.Handle.release result; Ok (BatFingerTree.to_list tuples) @@ -229,11 +225,8 @@ module Make (S : Abstract.Storage.STORAGE) (C : Helpers.Storage.CONFIGURATOR) = begin let open Utilities.Result in let* result = values (counter ~produced ~closed ()) in - let* enumerable = Protocols.Enumerable.require result in - let* cursor = Protocols.Enumerable.enumerate enumerable in - let* scan = Protocols.Cursor.require cursor in - let* first = Protocols.Cursor.next scan in - Protocols.Handle.release cursor; Protocols.Handle.release result; Ok first + let* first = Protocols.Enumerable.scan result Protocols.Cursor.next in + Protocols.Handle.release result; Ok first end |> Helpers.condition_as_failure in diff --git a/test/unit/kernel/EphemeralRelation.ml b/test/unit/kernel/EphemeralRelation.ml index c9742f0..1e9aa2f 100644 --- a/test/unit/kernel/EphemeralRelation.ml +++ b/test/unit/kernel/EphemeralRelation.ml @@ -40,11 +40,11 @@ let enumerates_every_member () = let enumerated = begin let open Rnt.Utilities.Result in - let* enumerable = Protocols.Enumerable.require (over [member 1; member 2; member 3]) in - let* cursor = Protocols.Enumerable.enumerate enumerable in - let* scan = Protocols.Cursor.require cursor in - let* tuples = Protocols.Cursor.drain scan () in - Protocols.Handle.release cursor; + let* tuples = + Protocols.Enumerable.scan + (over [member 1; member 2; member 3]) + (fun scan -> Protocols.Cursor.drain scan ()) + in Ok (values tuples) end |> Helpers.condition_as_failure diff --git a/test/unit/kernel/SubstantialRelation.ml b/test/unit/kernel/SubstantialRelation.ml index b9f87bf..6000e52 100644 --- a/test/unit/kernel/SubstantialRelation.ml +++ b/test/unit/kernel/SubstantialRelation.ml @@ -19,11 +19,9 @@ module Make (S : Abstract.Storage.STORAGE) (C : Helpers.Storage.CONFIGURATOR) = let enumerate relation = let open Utilities.Result in - let* enumerable = Protocols.Enumerable.require relation in - let* cursor = Protocols.Enumerable.enumerate enumerable in - let* scan = Protocols.Cursor.require cursor in - let* enumerated = Protocols.Cursor.drain scan () in - Protocols.Handle.release cursor; + let* enumerated = + Protocols.Enumerable.scan relation (fun scan -> Protocols.Cursor.drain scan ()) + in Ok (BatFingerTree.to_list enumerated) let contain_and_enumerate conn = -- cgit v1.2.3