Skip to content

Commit

Permalink
clojure.data.xml.preload: preloadable reader tags
Browse files Browse the repository at this point in the history
This can be required to make xml reader tags work, but loading the
impl nss only when used.

This makes AOT-ing projects that use #xml/ns in the (ns clause)
possible, by requiring clojure.data.xml.preload from user.clj
  • Loading branch information
bendlas committed Jul 22, 2023
1 parent e0c6645 commit 1a4879e
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/main/clojure/clojure/data/xml.clj
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

(:require
(clojure.data.xml
[preload]
[process :as process]
[impl :refer [export-api]]
[node :as node]
Expand Down
9 changes: 9 additions & 0 deletions src/main/clojure/clojure/data/xml/preload.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
(ns clojure.data.xml.preload)

(defn xml-ns [uri]
(require 'clojure.data.xml.name)
(clojure.data.xml.name/uri-symbol uri))

(defn xml-element [el]
(require 'clojure.data.xml.node)
(clojure.data.xml.node/tagged-element el))
4 changes: 2 additions & 2 deletions src/main/clojure/data_readers.cljc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
{xml/ns clojure.data.xml.name/uri-symbol
xml/element clojure.data.xml.node/tagged-element}
{xml/ns clojure.data.xml.preload/xml-ns
xml/element clojure.data.xml.preload/xml-element}

0 comments on commit 1a4879e

Please sign in to comment.