aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols/Enumerable.mli
blob: a0c1f1c8f2921edbf3066905d1d43c1a90353dcb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type t

class type implementation = object
  method enumerate : (Handle.t, 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 enumerate : t Handle.interface -> (Handle.t, Concepts.Condition.condition) result
val cursor : Handle.t -> (Handle.t, Concepts.Condition.condition) result

(** [f] over a cursor on [handle], released once [f] returns. *)
val scan :
  Handle.t ->
  (Cursor.t Handle.interface -> ('a, Concepts.Condition.condition) result) ->
  ('a, Concepts.Condition.condition) result