Something went wrong. Try again.
forked from gbury/dolmen
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930(* This file is free software, part of dolmen. See file "LICENSE" for more information *)
(* Extensions builtins *)(* ************************************************************************ *)
type t = { name : string; builtins : Env.builtins;}
let name { name; _ } = namelet builtins { builtins; _ } = builtins
let registry = Hashtbl.create 17
let register ({ name; _ } as ext) = Hashtbl.add registry name ext
let find_all name = Hashtbl.find_all registry name
let create ~name ~builtins = let t = { name ; builtins } in register t; t
let iter f = Hashtbl.iter (fun _ ext -> f ext) registry