diff options
Diffstat (limited to '')
| -rw-r--r-- | lib/backend/managers/Cursor.ml | 18 | ||||
| -rw-r--r-- | lib/backend/managers/Cursor.mli | 16 |
2 files changed, 34 insertions, 0 deletions
diff --git a/lib/backend/managers/Cursor.ml b/lib/backend/managers/Cursor.ml new file mode 100644 index 0000000..3295cae --- /dev/null +++ b/lib/backend/managers/Cursor.ml @@ -0,0 +1,18 @@ +type descriptor = + | Stored of {merkle_root: string} + | Ephemeral of {merkle_root: string; dependencies: string BatFingerTree.t} + +module Make (Store : Abstract.Storage.STORAGE) = struct + type cursor = unit + + let open_ (_txn : Store.transaction) (descriptor : descriptor) + ~(args : Concepts.Value.value BatFingerTree.t) : (cursor, Concepts.Condition.condition) result + = + ignore (descriptor, args); + failwith "NOT IMPLEMENTED: open a cursor by paging the relation's Merkle tree over Store.get" + + let next (_cursor : cursor) : (Concepts.Tuple.t option, Concepts.Condition.condition) result = + failwith "NOT IMPLEMENTED: page the next tuple over Store.get" + + let close (_cursor : cursor) : unit = () +end diff --git a/lib/backend/managers/Cursor.mli b/lib/backend/managers/Cursor.mli new file mode 100644 index 0000000..71fb15d --- /dev/null +++ b/lib/backend/managers/Cursor.mli @@ -0,0 +1,16 @@ +type descriptor = + | Stored of {merkle_root: string} + | Ephemeral of {merkle_root: string; dependencies: string BatFingerTree.t} + +module Make (Store : Abstract.Storage.STORAGE) : sig + type cursor + + val open_ : + Store.transaction -> + descriptor -> + args:Concepts.Value.value BatFingerTree.t -> + (cursor, Concepts.Condition.condition) result + + val next : cursor -> (Concepts.Tuple.t option, Concepts.Condition.condition) result + val close : cursor -> unit +end |
