1
我試圖使用棱柱型模式來強制地圖(1.0.4)棱鏡模式強制 - 重命名映射鍵
我試圖強迫
{:a 1}
到
{:b 1}
使用架構的自定義匹配器:
{:b s/Int}
但這個代碼不工作:
(require '[schema.core :as s])
(require '[schema.coerce :as coerce])
((coerce/coercer {:b s/Int}
(fn [s]
(when (= s s/Keyword)
(fn [x]
(if (= x :a)
:b
x)))))
{:a 1})
輸出:
#schema.utils.ErrorContainer{:error {:b missing-required-key, :a disallowed-key}}
我試圖通過運行在模式相匹配的一切,輸出的電流值和模式相匹配下面的代碼調試它:
((coerce/coercer {:b s/Int}
(fn [s]
(when true
(fn [x]
(println s x)
x))))
{:a 1})
輸出:
{:b Int} {:a 1}
=>
#schema.utils.ErrorContainer{:error {:b missing-required-key, :a disallowed-key}}
看起來好像匹配器一到達地圖就炸燬了?