Kitty Graphics Protocol in OCaml
terminal
graphics
ocaml
1type t = {
2 source_x : int option;
3 source_y : int option;
4 source_width : int option;
5 source_height : int option;
6 cell_x_offset : int option;
7 cell_y_offset : int option;
8 columns : int option;
9 rows : int option;
10 z_index : int option;
11 placement_id : int option;
12 cursor : Kgp_cursor.t option;
13 unicode_placeholder : bool;
14}
15
16let empty =
17 {
18 source_x = None;
19 source_y = None;
20 source_width = None;
21 source_height = None;
22 cell_x_offset = None;
23 cell_y_offset = None;
24 columns = None;
25 rows = None;
26 z_index = None;
27 placement_id = None;
28 cursor = None;
29 unicode_placeholder = false;
30 }
31
32let make ?source_x ?source_y ?source_width ?source_height ?cell_x_offset
33 ?cell_y_offset ?columns ?rows ?z_index ?placement_id ?cursor
34 ?(unicode_placeholder = false) () =
35 {
36 source_x;
37 source_y;
38 source_width;
39 source_height;
40 cell_x_offset;
41 cell_y_offset;
42 columns;
43 rows;
44 z_index;
45 placement_id;
46 cursor;
47 unicode_placeholder;
48 }
49
50let source_x t = t.source_x
51let source_y t = t.source_y
52let source_width t = t.source_width
53let source_height t = t.source_height
54let cell_x_offset t = t.cell_x_offset
55let cell_y_offset t = t.cell_y_offset
56let columns t = t.columns
57let rows t = t.rows
58let z_index t = t.z_index
59let placement_id t = t.placement_id
60let cursor t = t.cursor
61let unicode_placeholder t = t.unicode_placeholder