Source file hierarchy_intf.ml
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
open Base
module M (Data : Hardcaml_waveterm_kernel.Data.S) = struct
module type S = sig
type wave := Data.t Hardcaml_waveterm_kernel.Wave.t
type node =
{ mutable visible : bool
; signals : wave list
; children : node Base.Map.M(String).t
}
[@@deriving sexp_of]
type currently_rendered =
{ actual_wave : wave array
; for_rendering : wave array
}
[@@deriving sexp_of]
type t =
{ mutable cfg : Hardcaml_waveterm_kernel.Waves.Config.t
; mutable cursors : Cursors.t
; root : node
; mutable currently_rendered : currently_rendered
}
[@@deriving sexp_of]
val iter_nodes : f:(depth:int -> module_name:string -> node -> unit) -> t -> unit
val set_currently_rendered : t -> unit
val get_currently_rendered_waves : t -> Data.t Hardcaml_waveterm_kernel.Waves.t
val of_waves : Data.t Hardcaml_waveterm_kernel.Waves.t -> t
val change_selected_signal_index : delta:int -> t -> int
val toggle_selected_module_if_present : t -> bool
val move_to_delta_on_active_node
: start_cycle:int
-> search_forwards_or_backwards:[< `Backwards | `Forwards ]
-> t
-> int option
val cycle_wave_format : t -> unit
val reset_wave_format : t -> unit
val cycle_colour : t -> unit
val toggle_bold : t -> unit
val find_actual_wave : t -> int -> wave
val toggle_module : t -> string -> unit
end
end
module type Hierarchy = sig
module M = M
module Make (Data : Hardcaml_waveterm_kernel.Data.S) : M(Data).S
end