summaryrefslogtreecommitdiff
path: root/src/config_diff.mli
diff options
context:
space:
mode:
Diffstat (limited to 'src/config_diff.mli')
-rw-r--r--src/config_diff.mli23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/config_diff.mli b/src/config_diff.mli
new file mode 100644
index 0000000..70fb2e0
--- /dev/null
+++ b/src/config_diff.mli
@@ -0,0 +1,23 @@
+type change = Unchanged | Added | Subtracted | Updated of string list
+
+type diff_func = ?recurse:bool -> string list -> change -> unit
+
+type diff_trees = {
+ left: Config_tree.t;
+ right: Config_tree.t;
+ add: Config_tree.t ref;
+ sub: Config_tree.t ref;
+ inter: Config_tree.t ref;
+}
+
+exception Incommensurable
+exception Empty_comparison
+
+val make_diff_trees : Config_tree.t -> Config_tree.t -> diff_trees
+val clone : ?recurse:bool -> ?set_values:(string list) option -> Config_tree.t -> Config_tree.t -> string list -> Config_tree.t
+val decorate_trees : diff_trees -> ?recurse:bool -> string list -> change -> unit
+val trim_trees : diff_trees -> ?recurse:bool -> string list -> change -> unit
+val compare : string list -> Config_tree.t -> Config_tree.t -> diff_trees
+val diff_tree : string list -> Config_tree.t -> Config_tree.t -> Config_tree.t
+val trim_tree : Config_tree.t -> Config_tree.t -> Config_tree.t
+