summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vytree.ml9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vytree.ml b/src/vytree.ml
index 0222cfc..cd44600 100644
--- a/src/vytree.ml
+++ b/src/vytree.ml
@@ -77,11 +77,18 @@ let rec insert ?(position=Default) node path data =
let next_child = find node name in
match next_child with
| Some next_child' ->
- let new_node = insert next_child' names data in
+ let new_node = insert ~position:position next_child' names data in
replace node new_node
| None ->
raise (Insert_error "Path does not exist")
+let rec insert_multi_level default_data node path data =
+ match path with
+ | [] | [_] -> insert node path data
+ | name :: names ->
+ let node = insert node [name] default_data in
+ insert_multi_level default_data node names data
+
let delete node path =
do_with_child delete_immediate node path