OCaml HTML5 parser/serialiser based on Python's JustHTML
1type t = {
2 name : string;
3 required : bool;
4 datatype : string option;
5 enum_values : string list option;
6 deprecated : bool;
7}
8
9let make name ?(required = false) ?datatype ?enum_values ?(deprecated = false) () =
10 { name; required; datatype; enum_values; deprecated }
11
12let pp fmt t =
13 Format.fprintf fmt "@[<v 2>{ name = %S;@ required = %b;@ " t.name t.required;
14 (match t.datatype with
15 | None -> Format.fprintf fmt "datatype = None;@ "
16 | Some dt -> Format.fprintf fmt "datatype = Some %S;@ " dt);
17 (match t.enum_values with
18 | None -> Format.fprintf fmt "enum_values = None;@ "
19 | Some vals ->
20 Format.fprintf fmt "enum_values = Some [%a];@ "
21 (Format.pp_print_list
22 ~pp_sep:(fun fmt () -> Format.fprintf fmt "; ")
23 (fun fmt s -> Format.fprintf fmt "%S" s))
24 vals);
25 Format.fprintf fmt "deprecated = %b }@]" t.deprecated