We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent f2c517b commit 0769170Copy full SHA for 0769170
1 file changed
dev/map-reducer.repl
@@ -0,0 +1,26 @@
1
+(require '[aux :as a])
2
+(import '[java.io ByteArrayInputStream ByteArrayOutputStream]
3
+ '[org.fressian FressianReader FressianWriter]
4
+ '[org.fressian.handlers ILookup IReduceKV IReduceList ReadHandler]
5
+ '[java.util HashMap])
6
+
7
+(def map-reducer (reify IReduceKV
8
+ (init [_ len]
9
+ (HashMap. len))
10
11
+ (step [_ acc k v]
12
+ (.put ^HashMap acc k v))
13
14
+ (complete [_ acc]
15
+ acc)))
16
17
+(def map-handler (reify ReadHandler
18
+ (read [_ reader _ _]
19
+ (.readWithReducer ^FressianReader reader ^IReduceKV map-reducer))))
20
21
+(def custom-read-handlers
22
+ (reify ILookup
23
+ (valAt [_ k]
24
+ (get {"map" map-handler} k))))
25
26
+(type (a/defressian (a/fressian {"my" "map"}) custom-read-handlers))
0 commit comments