This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-10-12
Channels
- # beginners (58)
- # boot (4)
- # calva (1)
- # cider (13)
- # cljdoc (1)
- # cljs-dev (7)
- # cljsrn (14)
- # clojure (93)
- # clojure-canada (1)
- # clojure-conj (1)
- # clojure-germany (1)
- # clojure-italy (6)
- # clojure-losangeles (3)
- # clojure-nl (8)
- # clojure-spec (6)
- # clojure-uk (77)
- # clojurescript (3)
- # cursive (5)
- # data-science (6)
- # datomic (52)
- # emacs (1)
- # figwheel-main (2)
- # fulcro (6)
- # graphql (7)
- # jobs (9)
- # leiningen (1)
- # luminus (15)
- # mount (14)
- # off-topic (94)
- # pedestal (1)
- # re-frame (7)
- # reagent (10)
- # shadow-cljs (75)
- # spacemacs (4)
- # test-check (15)
- # tools-deps (23)
- # unrepl (1)
@basti there are two options: use ds/or
or convert data-specs into normal clojure.specs and use s/or
:
(ds/or
{:200 {:status (s/spec #{200})
:success boolean?
:body {:data [{:id string?}]}}
:500 {:status (s/spec #{500})
:success boolean?
:body empty?}})
(s/or :200 (ds/spec
{:name ::200
:spec {:status (s/spec #{200})
:success boolean?
:body {:data [{:id string?}]}}})
:500 (ds/spec
{:name ::500
:spec {:status (s/spec #{500})
:success boolean?
:body empty?}}))
After solving Infix Calculator on 4Clojure (http://www.4clojure.com/problem/135), I would like to write some spec for the args.
(s/def ::infix-args
(s/cat :a int?
:rest (s/*
(s/cat :f #{+ - / *} :b int?))))
Do you see a better way to do that ?Of course !