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