summaryrefslogtreecommitdiff
path: root/ocaml/lib/dill.mli
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml/lib/dill.mli')
-rw-r--r--ocaml/lib/dill.mli30
1 files changed, 30 insertions, 0 deletions
diff --git a/ocaml/lib/dill.mli b/ocaml/lib/dill.mli
new file mode 100644
index 0000000..f78bba8
--- /dev/null
+++ b/ocaml/lib/dill.mli
@@ -0,0 +1,30 @@
+(** Dill - Terminal I/O driver using Eio *)
+
+open Noun
+
+type belt =
+ | Aro of [`d | `l | `r | `u]
+ | Bac
+ | Ctl of char
+ | Del
+ | Met of char
+ | Ret
+ | Txt of string list
+
+type blit =
+ | Lin of string
+ | Klr of noun
+ | Mor of blit list
+ | Hop of int
+ | Clr
+
+type effect = {
+ wire: noun;
+ blit: blit;
+}
+
+val render_blit : stdout:_ Eio.Flow.sink -> blit -> unit
+val make_belt_event : noun -> belt -> noun
+val parse_input : string -> belt
+val input_loop : stdin:_ Eio.Flow.source -> state:State.t -> wire:noun -> (noun -> unit) -> unit
+val render_effects : stdout:_ Eio.Flow.sink -> noun -> unit