blob: e09761eb93bf5f023e07190fc823b7e274998abb (
plain)
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
|
exception Duplicate_value
type config_node_data = {
values: string list;
comment: string;
node_type: Vytree.node_type;
keep_order: bool;
}
type t = config_node_data Vytree.t
let default_data = {
values = [];
comment = "";
node_type = Vytree.Other;
keep_order = false;
}
let make = Vytree.make default_data
let set_value node path value =
let data = { default_data with values=[value] } in
Vytree.update node path data
let add_value node path value =
let node' = Vytree.get node path in
let data = Vytree.data_of_node node' in
let values = data.values in
match (Vylist.find (fun x -> x = value) values) with
| Some _ -> raise Duplicate_value
| None ->
let values = values @ [value] in
Vytree.update node path ({data with values=values})
let get_values node path =
let node' = Vytree.get node path in
let data = Vytree.data_of_node node' in
data.values
|