I think Stu Halloway’s proof-of-concept is at least close to what you want: 
https://gist.github.com/stuarthalloway/f4c4297d344651c99827769e1c3d34e9.

(Here’s the context 
<https://groups.google.com/forum/#!topic/clojure/i8Rz-AnCoa8> for that 
code, in case you were curious.)

btw, you might want to take a look at the spec-provider 
<https://github.com/stathissideris/spec-provider> library, too. It’s not 
exactly what you were asking for, but I think it could help you quickly 
create (rough, approximate) specs that incorporate all witnessed keys.

On Friday, January 5, 2018 at 11:49:15 AM UTC-5, Lucas Wiener wrote:
>
> Hi,
>
> I'm writing a spec for a fairly complex data structure. One thing that I 
> have identified troublesome is that I currently have no clue how "well" my 
> spec describes my data. I keep iterating the spec, thinking that I have 
> described all fields but then it turns out later that I've missed 
> something. I would love some kind of functionality that tells me which keys 
> are present in my data that are not described in my spec. I'm aware of the 
> design principle that a spec should not be limiting to having extra data 
> and I totally support that. However, at development time I think it would 
> be useful to have something that tells me "keys :x, :y, :z are not in the 
> spec" or "the spec describes a subset of the given data". Is this possible?
>
> Kind Regards
> Lucas Wiener
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to