Как назначить предикат для extra-validator-fn?

Как бы я назначил предикат для каждой проверки в extra-validator-fn следующей схемы defrecord:

(s/defrecord Item
         [type :- (s/enum :solid :liquid)
          unit :- (s/enum :kg :ml)]
         (s/fn [{:as this :keys [type unit]}]
               (or (and (= type :solid) (= unit :kg))
                   (and (= type :liquid) (= unit :ml)))))

Дополнительная проверка выдает исключение в этом примере:

(s/validate Item (map->Item {:type :solid :unit :ml}))

Здесь это читает: (not (passes-extra-validation? a-apriori.cli.core.Item))

Тем не менее, я хотел бы прочитать: (not ('invalid-unit-for-type a-apriori.cli.core.Item))

0 ответов

Другие вопросы по тегам