Я хотел бы использовать спецификацию clojure для создания набора ограничений типа, которые могут быть сглажены или дополнительно ограничены другими спецификациями.
Например, у меня может быть много полей, все из которых должны быть действительными с санитарной уценкой.
Следующий пример работает для проверки (s/valid?
), но не для генерации (gen/generate
)
(s/def ::sanitized-markdown string?)
(s/def ::instruction-list #(s/valid? ::sanitized-markdown %)) ;; works
(gen/generate (s/gen ::instruction-list)) ;; fails
Однако (gen/generate (s/gen ::sanitized-markdown))
работает.
Есть ли способ расширить ::instruction-list
из ::sanitized-markdown
, чтобы сохранить все поведение?