Fix dynamism

This commit is contained in:
Ben Sless 2024-08-25 19:19:26 +03:00
parent 61783e4c81
commit 7dfc0e5fca

View file

@ -3,6 +3,8 @@
(defprotocol IKeywordize (defprotocol IKeywordize
(-keywordize [coll])) (-keywordize [coll]))
(defn keywordize-keys [m] (-keywordize m))
(defn- keywordize-kv (defn- keywordize-kv
[m k v] [m k v]
(assoc! m (if (string? k) (keyword k) (-keywordize k)) (-keywordize v))) (assoc! m (if (string? k) (keyword k) (-keywordize k)) (-keywordize v)))
@ -11,7 +13,7 @@
[m] [m]
(persistent! (reduce-kv keywordize-kv (transient (empty m)) m))) (persistent! (reduce-kv keywordize-kv (transient (empty m)) m)))
(def ^:private keywordize-xf (map -keywordize)) (def ^:private keywordize-xf (map keywordize-keys))
(defn- -keywordize-default (defn- -keywordize-default
[coll] [coll]
@ -30,10 +32,10 @@
(extend type IKeywordize {:-keywordize -keywordize-map})) (extend type IKeywordize {:-keywordize -keywordize-map}))
(extend-protocol IKeywordize (extend-protocol IKeywordize
nil
(-keywordize [_] nil)
Object Object
(-keywordize [x] x) (-keywordize [x] x)
nil
(-keywordize [_] nil)
clojure.lang.MapEntry clojure.lang.MapEntry
(-keywordize [e] (clojure.lang.MapEntry/create (-keywordize [e] (clojure.lang.MapEntry/create
(-keywordize (.key e)) (-keywordize (.key e))
@ -46,5 +48,3 @@
(-keywordize [x] x) (-keywordize [x] x)
clojure.lang.IRecord clojure.lang.IRecord
(-keywordize [r] (reduce (fn [r x] (conj r (-keywordize x))) r r))) (-keywordize [r] (reduce (fn [r x] (conj r (-keywordize x))) r r)))
(defn keywordize-keys [m] (-keywordize m))