Skip to content

Commit 2498002

Browse files
committed
add handler for fressian/list
1 parent 508a589 commit 2498002

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/main/clojure/clojure/data/fressian.clj

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
[clojure.java.io :as io]
1515
[clojure.string :as str])
1616
(:import
17-
[clojure.lang IRecord Ratio]
17+
[clojure.lang IRecord LazilyPersistentVector Ratio]
1818
[java.io InputStream OutputStream]
1919
[java.nio ByteBuffer]
2020
[org.fressian FressianWriter StreamingWriter FressianReader TaggedObject Writer Reader]
21-
[org.fressian.handlers WriteHandler ReadHandler ILookup WriteHandlerLookup]
21+
[org.fressian.handlers ConvertList WriteHandler ReadHandler ILookup WriteHandlerLookup]
2222
[org.fressian.impl ByteBufferInputStream BytesOutputStream InheritanceLookup]))
2323

2424
(set! *warn-on-reflection* true)
@@ -188,7 +188,10 @@
188188
(let [kvs ^java.util.List (.readObject rdr)]
189189
(if (< (.size kvs) 16)
190190
(clojure.lang.PersistentArrayMap. (.toArray kvs))
191-
(clojure.lang.PersistentHashMap/create (seq kvs))))))})
191+
(clojure.lang.PersistentHashMap/create (seq kvs))))))
192+
"fressian/list"
193+
(reify ConvertList (convertList [_ items]
194+
(LazilyPersistentVector/createOwning items)))})
192195

193196
(defn ^Writer create-writer
194197
"Create a fressian writer targeting out. Handlers must be

0 commit comments

Comments
 (0)