diff options
Diffstat (limited to 'lib/protocols/Enumerable.ml')
| -rw-r--r-- | lib/protocols/Enumerable.ml | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/protocols/Enumerable.ml b/lib/protocols/Enumerable.ml index 53db834..76b4e86 100644 --- a/lib/protocols/Enumerable.ml +++ b/lib/protocols/Enumerable.ml @@ -19,3 +19,5 @@ let make impl = Enumerable (impl :> implementation) let from handle = Handle.into handle (function Enumerable impl -> Some impl | _ -> None) let require handle = from handle |> Option.to_result ~none:(Error.not_enumerable ()) let enumerate i = Handle.invoke i (fun o -> o#enumerate) +let cursor handle = Result.bind (require handle) enumerate +let scan handle f = Result.bind (cursor handle) (fun cursor -> Cursor.consuming cursor f) |
