Как определить вектор пользовательских карт - PullRequest
0 голосов
/ 26 марта 2019

У меня есть спецификация для пользовательской карты с именем ::cell, скажем,

(s/def ::attr-1 int?)
(s/def ::attr-2 int?)
(s/def ::cell :req-un [::attr-1 ::attr-2])

Теперь я хочу еще одну спецификацию ::grid для пользовательского вектора, который состоит только из этих ::cell карт.Например, сетка может выглядеть следующим образом:

(let grid [{:attr-1 11, :attr-2 12} {:attr-1 21 :attr-2 22}])

Можно ли создать спецификацию для этого требования, используя спецификацию ::cell?

(s/def ::grid ???)

1 Ответ

2 голосов
/ 26 марта 2019

Вы можете использовать tuple:

(s/def ::grid (s/tuple ::cell ::cell ::cell))

или coll-of с указанием вида и количества:

(s/coll-of ::cell :kind vector? :count 3)
...