]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/registry/helm_registry.ml
added iterators over registry contents (fold, iter, to_list)
[helm.git] / helm / ocaml / registry / helm_registry.ml
index 0c7b437238d1e57c23a9d5bcf73d83d6e4fde2b1..2b6461b5620bc0a0f4b35090f601eb3c40b26643 100644 (file)
@@ -310,6 +310,10 @@ let load_from ?path fname =
   end else
     load_from_absolute fname
 
+let fold f init = Hashtbl.fold (fun k v acc -> f acc k v) registry init
+let iter f = fold (fun _ k v -> f k v) ()
+let to_list () = fold (fun acc k v -> (k, v) :: acc) []
+
   (* DEBUGGING ONLY *)
 
 let dump () = Hashtbl.iter (fun k v -> printf "%s = %s\n" k v) registry