aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols/Cursor.mli
blob: c977fec9084e460d880580cef49ddf44f8c43351 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
type batch =
  {tuples: Concepts.Tuple.t BatFingerTree.t; exhausted: bool}

type t

class type implementation = object
  method fetch : int -> (batch, Concepts.Condition.condition) result
end

val make : #implementation -> Handle.protocol
val from : Handle.t -> t Handle.interface option
val require : Handle.t -> (t Handle.interface, Concepts.Condition.condition) result
val fetch : t Handle.interface -> int -> (batch, Concepts.Condition.condition) result

val next : t Handle.interface -> (Concepts.Tuple.t option, Concepts.Condition.condition) result

val exists :
  t Handle.interface ->
  (Concepts.Tuple.t -> bool) ->
  (bool, Concepts.Condition.condition) result

val drain :
  t Handle.interface ->
  ?limit:int ->
  unit ->
  (Concepts.Tuple.t BatFingerTree.t, Concepts.Condition.condition) result