package ppx_css
Source file preprocess_arguments.ml
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 34open! Core type t = { dont_hash_prefixes : String.Set.t ; dont_hash : String.Set.t ; rewrite : string String.Map.t } let singleton = ref { dont_hash_prefixes = String.Set.empty ; dont_hash = String.Set.empty ; rewrite = String.Map.empty } ;; let get () = !singleton let add ~get ~set new_ = singleton := set !singleton (Set.add (get !singleton) new_) let add_dont_hash new_ = add ~get:(fun t -> t.dont_hash) ~set:(fun t dont_hash -> { t with dont_hash }) new_ ;; let add_dont_hash_prefixes new_ = add ~get:(fun t -> t.dont_hash_prefixes) ~set:(fun t dont_hash_prefixes -> { t with dont_hash_prefixes }) new_ ;; let add_rewrite ~from ~to_ = singleton := { !singleton with rewrite = Map.set !singleton.rewrite ~key:from ~data:to_ } ;;