DA
Size: a a a
DA
DA
DA
a
YK
(s/def ::id pos-int?)
:id
YK
(def my-fields [:my-specs/id :my-specs/name]
DS
:id
? Сделать форму, которая определяет спеку и возвращает ее идентификатор ? Чтобы можно было сразу объявить и использовать ?DS
AD
(def my-fields [:my-specs/id :my-specs/name]
(s/and (s/cat :start int? :end int?)
#(< (:start %) (:end %)))
AD
YK
;; my-specs.clj
(s/def ::id int?)
(s/def ::name string?)
;; my-some-module.clj
(require [my-specs :as ms])
(def fields
[:ms/id
:ms/name])
;; => [::my-specs/id ::my-specs/name]
;; my-some-module2.clj
(require [my-specs :as ms])
(def fields
[:ms/id
:ms/first-name]) ;; <= error
DS
:ms/id
а не ::ms/id
? Это так и задумано или опечатка ?DS
DS
;; my-specs.clj
(s/def ::id int?)
(s/def ::name string?)
;; my-some-module.clj
(require [my-specs :as ms])
(def fields
[:ms/id
:ms/name])
;; => [::my-specs/id ::my-specs/name]
;; my-some-module2.clj
(require [my-specs :as ms])
(def fields
[:ms/id
:ms/first-name]) ;; <= error
(spec/def ::id int?)
(spec/def ::name string?)
(defmacro checking [coll]
(let [no-spec (filter #(not (spec/get-spec %)) coll)]
(when (seq no-spec)
(throw (Exception. (str "Invalid keywords detected: " (seq no-spec)))))
coll))
(def fields
(checking
[::id ::name]))
VL
DS
spec/registry
YK
spec/registry
IG