Some checks failed
build / build (push) Failing after 31s

This commit is contained in:
2026-03-14 13:43:02 -06:00
parent 2d3a23f085
commit b066d82259

View File

@@ -16,7 +16,8 @@
[com.rpl.specter.zipper :as sz]
[net.deertopia.doerg.common :as common]
[net.deertopia.doerg.config :as cfg]
[spec-dict.main :refer [dict]])
[spec-dict.main :refer [dict]]
[clojure.tools.logging :as l])
(:import
(java.util UUID)))
@@ -334,6 +335,16 @@
(defmulti object-spec :type)
(defmulti recursive-object-spec :type)
(defmulti element-spec :type)
(defmulti greater-element-spec :type)
(defn- unimplemented-spec [x]
(lr/warnf "unimplemented method for %s" (:type x))
any?)
(defmethod object-spec :default [x] (unimplemented-spec x))
(defmethod recursive-object-spec :default [x] (unimplemented-spec x))
(defmethod greater-element-spec :default [x] (unimplemented-spec x))
(defmethod element-spec :default [x] (unimplemented-spec x))
(def ^:private nfe
"NFE — “no further expectations.” Used in sub-specs of `::element`
@@ -342,35 +353,28 @@
(s/with-gen (constantly true)
(constantly (gen/return {}))))
(s/def ::object-base
(dict {:type ::object-type}))
(s/def ::object
(s/multi-spec object-spec :type))
(s/def ::element-base
(dict ^:opt {:contents-begin ::contents-begin
:contents-end ::contents-end}
{:children (s/coll-of ::object :kind vector?)
:type ::element-type}))
(s/def ::element
(s/merge (dict ^:opt {:contents-begin ::contents-begin
:contents-end ::contents-end}
{:children (s/coll-of ::object :kind vector?)})
(s/multi-spec element-spec :type)))
(s/def ::greater-element-base
(dict {:contents-begin ::contents-begin
:contents-end ::contents-end
:children (s/coll-of ::object :kind vector?)
:type ::greater-element-type}))
(s/def ::greater-element
(s/merge (dict {:contents-begin ::contents-begin
:contents-end ::contents-end
:children (s/coll-of
(s/or :element ::element
:greater-element ::greater-element)
:kind vector?)})
(s/multi-spec greater-element-spec :type)))
(s/def ::recursive-object-base
(dict ^:opt {:contents-begin ::contents-begin
:contents-end ::contents-end}
{:children (s/coll-of ::object :kind vector?)
#_#_
:type ::recursive-object-type}))
(s/def ::object
(s/merge ::object-base
(s/multi-spec object-spec :type)))
(s/def ::recursive-object
(s/merge ::recursive-object-base
(s/multi-spec recursive-object-spec :type)))
{:children (s/coll-of ::object-base :kind vector?)}))
(s/def ::todo-keyword string?)
(s/def ::priority string?)
@@ -392,8 +396,7 @@
;;; Specs (specific elements)
#_
(defmethod node-spec "headline" [_]
(defmethod element-spec "headline" [_]
(dict {:todo-keyword (s/nilable ::todo-keyword)
:priority (s/nilable ::priority)
:level ::level
@@ -404,7 +407,6 @@
;;; Specs (specific greater elements)
#_#_
(defmethod node-spec "org-data" [_] nfe)
(defmethod greater-element-spec "org-data" [_] nfe)
(defmethod node-spec "section" [_] nfe)
(defmethod greater-element-spec "section" [_] nfe)