Module Hardcaml_waveterm.Display_rule

A Rule.t is a predicate on Port.ts that specifies the display format of matching ports.

type t =
| Default
| Regexp of {
re : Re.re;
wave_format : Wave_format.t;
alignment : Text_alignment.t;
}
val sexp_of_t : t -> Sexplib0.Sexp.t
val default : t

Default formatting - binary for 1 bit signals, hex otherwise.

val port_name_matches : ?alignment:Text_alignment.t -> Re.re -> wave_format:Wave_format.t -> t

Use given format for ports whose name match the regular expression re.

val port_name_is : ?alignment:Text_alignment.t -> Base.string -> wave_format:Wave_format.t -> t

Use format for ports with given name.

val port_name_is_one_of : ?alignment:Text_alignment.t -> wave_format:Wave_format.t -> Base.string Base.list -> t

Match any one of a list of names.

val custom : f:( Hardcaml_waveterm__Port.t -> Wave_format.t Base.option ) -> t

In custom f, f returns None to signify no match, or Some format to specify a display format.

val custom_with_alignment : f: ( Hardcaml_waveterm__Port.t -> (Wave_format.t * Text_alignment.t) Base.option ) -> t

Similar tp f, but allows the user to specify the alignment of the wave.

module type States = sig ... end
val states : ?onehot:Base.bool -> ?alignment:Text_alignment.t -> (module States) -> Base.string -> t

For use with statemachines. Derives state names from the variant describing the states of the state machine.