summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/boot.clj10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/boot.clj b/src/boot.clj
index bf986cb3..6fd4678b 100644
--- a/src/boot.clj
+++ b/src/boot.clj
@@ -901,6 +901,15 @@
(macroexpand ex)
ex)))
+(defmacro defstruct [name & keys]
+ `(def ~name (. clojure.lang.PersistentStructMap (createSlotMap (list ~@keys)))))
+
+(defn struct [s & inits]
+ (. clojure.lang.PersistentStructMap (create s inits)))
+
+(defn accessor [s key]
+ (. clojure.lang.PersistentStructMap (getAccessor s key)))
+
(def *exports*
'(clojure
load-file eql-ref?
@@ -945,5 +954,6 @@
max min
bit-shift-left bit-shift-right
bit-and bit-or bit-xor bit-not
+ defstruct struct accessor
))