Switch to dynamic default-freeze-compressor-selector

This commit is contained in:
Peter Taoussanis 2015-06-01 11:00:32 +07:00
parent e8edba1493
commit a005a9d7fa

View file

@ -391,11 +391,14 @@
(> ba-len 128) lz4-compressor (> ba-len 128) lz4-compressor
:else nil))) :else nil)))
(encore/defonce* default-freeze-compressor-selector_ (encore/defonce* ^:dynamic ^:private *default-freeze-compressor-selector*
"EXPERIMENTAL. default-freeze-compressor-selector)
Determines the global default default compressor selector
(fn [^bytes ba])->compressor used by `(freeze <x> {:compressor :auto <...>})." (defn set-default-freeze-compressor-selector!
(atom default-freeze-compressor-selector)) "Sets global dynamic (fn selector [^bytes ba])->compressor used by
`(freeze <x> {:compressor :auto <...>})."
[selector]
(alter-var-root #'*default-freeze-compressor-selector* (constantly selector)))
(defn freeze (defn freeze
"Serializes arg (any Clojure data type) to a byte array. To freeze custom "Serializes arg (any Clojure data type) to a byte array. To freeze custom
@ -417,7 +420,7 @@
(if (identical? compressor :auto) (if (identical? compressor :auto)
(if skip-header? (if skip-header?
lz4-compressor lz4-compressor
(@default-freeze-compressor-selector_ ba)) (*default-freeze-compressor-selector* ba))
(if (fn? compressor) (if (fn? compressor)
(compressor ba) ; Assume compressor selector fn (compressor ba) ; Assume compressor selector fn
compressor ; Assume compressor compressor ; Assume compressor