Hi everyone,
I started exploring the clojure.spec "better user errors" thing and I'm
having some trouble matching clojure.spec.alpha/problems inside
:clojure.spec.alpha/value in explain-data.
I'm trying to understand if there is currently a way of using problem to
directly find the part of the value that is causing the issue independent of
the spec that failed.
For example given a spec :
(s/def ::spec-1 (s/map-of keyword? int?))
(-> (s/explain-data ::spec-1 {::k 8.8})
:clojure.spec.alpha/problems
first
:in)
=> [::k 1] ;; which means the problem was with the value, not the key
but given a different spec for the same data :
(s/def ::k int?)
(s/def ::spec-2 (s/keys :req [::k]))
(-> (s/explain-data ::spec-2 {::k 8.8})
:clojure.spec.alpha/problems
first
:in)
=> [::k]
So the thing is that if you see a problem in [::k 1] you don't know if its
the ::k value, or the value is a sequence and
the problem is its element at pos 1.
Does it make sense or I'm missing something?
I'm trying with [org.clojure/clojure "1.9.0-alpha17"]
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.