All checks were successful
build / build (push) Successful in 5s
wip: feat: org-element specs
28 lines
580 B
Clojure
28 lines
580 B
Clojure
(ns scratch
|
|
(:require [clojure.spec.alpha :as s]
|
|
[spec-dict.main :refer [dict]]
|
|
[clojure.test.check.generators :as gen]))
|
|
|
|
|
|
(defmulti node-spec :type)
|
|
|
|
(s/def ::node
|
|
(s/multi-spec node-spec :type))
|
|
|
|
(s/def ::children (s/coll-of ::node :kind vector?))
|
|
|
|
(s/def ::value nat-int?)
|
|
|
|
(defmethod node-spec :branch [_]
|
|
(dict {:children ::children})
|
|
#_(s/keys :req-un [::children]))
|
|
|
|
(defmethod node-spec :leaf [_]
|
|
(dict {:value ::value})
|
|
#_
|
|
(s/keys :req-un [::value]))
|
|
|
|
(comment
|
|
(binding [s/*recursion-limit* 1]
|
|
(gen/generate (s/gen ::node))))
|