Switch to dynamic default-freeze-compressor-selector
This commit is contained in:
parent
e8edba1493
commit
a005a9d7fa
1 changed files with 9 additions and 6 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue