@anysoftinc/anydb-sdk 0.1.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -163
- package/dist/anydb.datascript.core.js +336 -0
- package/dist/anydb.datascript.rules.js +29 -0
- package/dist/anydb.datascript.schema.js +35 -0
- package/dist/client.d.ts +46 -96
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +332 -305
- package/dist/cljs.core.js +38752 -0
- package/dist/cljs.reader.js +450 -0
- package/dist/cljs.tools.reader.edn.js +945 -0
- package/dist/cljs.tools.reader.impl.commons.js +205 -0
- package/dist/cljs.tools.reader.impl.errors.js +429 -0
- package/dist/cljs.tools.reader.impl.inspect.js +170 -0
- package/dist/cljs.tools.reader.impl.utils.js +413 -0
- package/dist/cljs.tools.reader.js +1815 -0
- package/dist/cljs.tools.reader.reader_types.js +826 -0
- package/dist/cljs_env.js +7672 -0
- package/dist/clojure.data.js +307 -0
- package/dist/clojure.edn.js +107 -0
- package/dist/clojure.set.js +394 -0
- package/dist/clojure.string.js +490 -0
- package/dist/clojure.walk.js +144 -0
- package/dist/datascript-backend.d.ts +26 -0
- package/dist/datascript-backend.d.ts.map +1 -0
- package/dist/datascript-backend.js +113 -0
- package/dist/datascript.built_ins.js +680 -0
- package/dist/datascript.conn.js +814 -0
- package/dist/datascript.core.js +1285 -0
- package/dist/datascript.db.js +4058 -0
- package/dist/datascript.impl.entity.js +588 -0
- package/dist/datascript.lru.js +213 -0
- package/dist/datascript.parser.js +8598 -0
- package/dist/datascript.pull_api.js +2287 -0
- package/dist/datascript.pull_parser.js +865 -0
- package/dist/datascript.query.js +2785 -0
- package/dist/datascript.serialize.js +352 -0
- package/dist/datascript.storage.js +50 -0
- package/dist/datascript.util.js +82 -0
- package/dist/extend_clj.core.js +134 -0
- package/dist/me.tonsky.persistent_sorted_set.arrays.js +54 -0
- package/dist/me.tonsky.persistent_sorted_set.js +2485 -0
- package/dist/nextauth-adapter.d.ts +7 -2
- package/dist/nextauth-adapter.d.ts.map +1 -1
- package/dist/nextauth-adapter.js +251 -149
- package/package.json +9 -5
- package/dist/query-builder.d.ts +0 -126
- package/dist/query-builder.d.ts.map +0 -1
- package/dist/query-builder.js +0 -207
|
@@ -0,0 +1,2485 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./me.tonsky.persistent_sorted_set.arrays.js");
|
|
6
|
+
var anydb=$CLJS.anydb || ($CLJS.anydb = {});
|
|
7
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
8
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
9
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
10
|
+
var datascript=$CLJS.datascript || ($CLJS.datascript = {});
|
|
11
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
12
|
+
var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {});
|
|
13
|
+
|
|
14
|
+
$CLJS.SHADOW_ENV.setLoaded("me.tonsky.persistent_sorted_set.js");
|
|
15
|
+
|
|
16
|
+
goog.provide('me.tonsky.persistent_sorted_set');
|
|
17
|
+
/**
|
|
18
|
+
* js limitation for bit ops
|
|
19
|
+
*/
|
|
20
|
+
me.tonsky.persistent_sorted_set.max_safe_path = Math.pow((2),(31));
|
|
21
|
+
/**
|
|
22
|
+
* tunable param
|
|
23
|
+
*/
|
|
24
|
+
me.tonsky.persistent_sorted_set.bits_per_level = (5);
|
|
25
|
+
me.tonsky.persistent_sorted_set.max_len = Math.pow((2),(5));
|
|
26
|
+
me.tonsky.persistent_sorted_set.min_len = (me.tonsky.persistent_sorted_set.max_len / (2));
|
|
27
|
+
me.tonsky.persistent_sorted_set.avg_len = ((me.tonsky.persistent_sorted_set.max_len + me.tonsky.persistent_sorted_set.min_len) >>> (1));
|
|
28
|
+
me.tonsky.persistent_sorted_set.max_safe_level = Math.floor(((31) / (5)));
|
|
29
|
+
me.tonsky.persistent_sorted_set.bit_mask = (me.tonsky.persistent_sorted_set.max_len - (1));
|
|
30
|
+
me.tonsky.persistent_sorted_set.factors = me.tonsky.persistent_sorted_set.arrays.into_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__8143_SHARP_){
|
|
31
|
+
return Math.pow((2),p1__8143_SHARP_);
|
|
32
|
+
}),cljs.core.range.cljs$core$IFn$_invoke$arity$3((0),(52),(5))));
|
|
33
|
+
me.tonsky.persistent_sorted_set.empty_path = (0);
|
|
34
|
+
me.tonsky.persistent_sorted_set.path_get = (function me$tonsky$persistent_sorted_set$path_get(path,level){
|
|
35
|
+
if((level < me.tonsky.persistent_sorted_set.max_safe_level)){
|
|
36
|
+
return ((path >>> (level * (5))) & me.tonsky.persistent_sorted_set.bit_mask);
|
|
37
|
+
} else {
|
|
38
|
+
return (Math.floor((path / (me.tonsky.persistent_sorted_set.factors[level]))) & me.tonsky.persistent_sorted_set.bit_mask);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
me.tonsky.persistent_sorted_set.path_set = (function me$tonsky$persistent_sorted_set$path_set(path,level,idx){
|
|
42
|
+
var smol_QMARK_ = (((path < me.tonsky.persistent_sorted_set.max_safe_path)) && ((level < me.tonsky.persistent_sorted_set.max_safe_level)));
|
|
43
|
+
var old = me.tonsky.persistent_sorted_set.path_get(path,level);
|
|
44
|
+
var minus = ((smol_QMARK_)?(old << (level * (5))):(old * (me.tonsky.persistent_sorted_set.factors[level])));
|
|
45
|
+
var plus = ((smol_QMARK_)?(idx << (level * (5))):(idx * (me.tonsky.persistent_sorted_set.factors[level])));
|
|
46
|
+
return ((path - minus) + plus);
|
|
47
|
+
});
|
|
48
|
+
me.tonsky.persistent_sorted_set.path_inc = (function me$tonsky$persistent_sorted_set$path_inc(path){
|
|
49
|
+
return (path + (1));
|
|
50
|
+
});
|
|
51
|
+
me.tonsky.persistent_sorted_set.path_dec = (function me$tonsky$persistent_sorted_set$path_dec(path){
|
|
52
|
+
return (path - (1));
|
|
53
|
+
});
|
|
54
|
+
me.tonsky.persistent_sorted_set.path_cmp = (function me$tonsky$persistent_sorted_set$path_cmp(path1,path2){
|
|
55
|
+
return (path1 - path2);
|
|
56
|
+
});
|
|
57
|
+
me.tonsky.persistent_sorted_set.path_lt = (function me$tonsky$persistent_sorted_set$path_lt(path1,path2){
|
|
58
|
+
return (path1 < path2);
|
|
59
|
+
});
|
|
60
|
+
me.tonsky.persistent_sorted_set.path_lte = (function me$tonsky$persistent_sorted_set$path_lte(path1,path2){
|
|
61
|
+
return (path1 <= path2);
|
|
62
|
+
});
|
|
63
|
+
me.tonsky.persistent_sorted_set.path_eq = (function me$tonsky$persistent_sorted_set$path_eq(path1,path2){
|
|
64
|
+
return (path1 === path2);
|
|
65
|
+
});
|
|
66
|
+
me.tonsky.persistent_sorted_set.path_same_leaf = (function me$tonsky$persistent_sorted_set$path_same_leaf(path1,path2){
|
|
67
|
+
if((((path1 < me.tonsky.persistent_sorted_set.max_safe_path)) && ((path2 < me.tonsky.persistent_sorted_set.max_safe_path)))){
|
|
68
|
+
return ((path1 >>> (5)) === (path2 >>> (5)));
|
|
69
|
+
} else {
|
|
70
|
+
return (Math.floor((path1 / me.tonsky.persistent_sorted_set.max_len)) === Math.floor((path2 / me.tonsky.persistent_sorted_set.max_len)));
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
me.tonsky.persistent_sorted_set.path_str = (function me$tonsky$persistent_sorted_set$path_str(path){
|
|
74
|
+
var res = cljs.core.List.EMPTY;
|
|
75
|
+
var path__$1 = path;
|
|
76
|
+
while(true){
|
|
77
|
+
if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(path__$1,(0))){
|
|
78
|
+
var G__8486 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(res,cljs.core.mod(path__$1,me.tonsky.persistent_sorted_set.max_len));
|
|
79
|
+
var G__8487 = Math.floor((path__$1 / me.tonsky.persistent_sorted_set.max_len));
|
|
80
|
+
res = G__8486;
|
|
81
|
+
path__$1 = G__8487;
|
|
82
|
+
continue;
|
|
83
|
+
} else {
|
|
84
|
+
return cljs.core.vec(res);
|
|
85
|
+
}
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
me.tonsky.persistent_sorted_set.binary_search_l = (function me$tonsky$persistent_sorted_set$binary_search_l(cmp,arr,r,k){
|
|
90
|
+
var l = (0);
|
|
91
|
+
var r__$1 = cljs.core.long$(r);
|
|
92
|
+
while(true){
|
|
93
|
+
if((l <= r__$1)){
|
|
94
|
+
var m = ((l + r__$1) >>> (1));
|
|
95
|
+
var mk = (arr[m]);
|
|
96
|
+
if(((cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(mk,k) : cmp.call(null,mk,k)) < (0))){
|
|
97
|
+
var G__8488 = (m + (1));
|
|
98
|
+
var G__8489 = r__$1;
|
|
99
|
+
l = G__8488;
|
|
100
|
+
r__$1 = G__8489;
|
|
101
|
+
continue;
|
|
102
|
+
} else {
|
|
103
|
+
var G__8490 = l;
|
|
104
|
+
var G__8491 = (m - (1));
|
|
105
|
+
l = G__8490;
|
|
106
|
+
r__$1 = G__8491;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
return l;
|
|
111
|
+
}
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
me.tonsky.persistent_sorted_set.binary_search_r = (function me$tonsky$persistent_sorted_set$binary_search_r(cmp,arr,r,k){
|
|
116
|
+
var l = (0);
|
|
117
|
+
var r__$1 = cljs.core.long$(r);
|
|
118
|
+
while(true){
|
|
119
|
+
if((l <= r__$1)){
|
|
120
|
+
var m = ((l + r__$1) >>> (1));
|
|
121
|
+
var mk = (arr[m]);
|
|
122
|
+
if(((cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(mk,k) : cmp.call(null,mk,k)) > (0))){
|
|
123
|
+
var G__8492 = l;
|
|
124
|
+
var G__8493 = (m - (1));
|
|
125
|
+
l = G__8492;
|
|
126
|
+
r__$1 = G__8493;
|
|
127
|
+
continue;
|
|
128
|
+
} else {
|
|
129
|
+
var G__8494 = (m + (1));
|
|
130
|
+
var G__8495 = r__$1;
|
|
131
|
+
l = G__8494;
|
|
132
|
+
r__$1 = G__8495;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
return l;
|
|
137
|
+
}
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
me.tonsky.persistent_sorted_set.lookup_exact = (function me$tonsky$persistent_sorted_set$lookup_exact(cmp,arr,key){
|
|
142
|
+
var arr_l = arr.length;
|
|
143
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,arr,(arr_l - (1)),key);
|
|
144
|
+
if((((idx < arr_l)) && (((0) === (function (){var G__8207 = (arr[idx]);
|
|
145
|
+
var G__8208 = key;
|
|
146
|
+
return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8207,G__8208) : cmp.call(null,G__8207,G__8208));
|
|
147
|
+
})())))){
|
|
148
|
+
return idx;
|
|
149
|
+
} else {
|
|
150
|
+
return (-1);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
me.tonsky.persistent_sorted_set.lookup_range = (function me$tonsky$persistent_sorted_set$lookup_range(cmp,arr,key){
|
|
154
|
+
var arr_l = arr.length;
|
|
155
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,arr,(arr_l - (1)),key);
|
|
156
|
+
if((idx === arr_l)){
|
|
157
|
+
return (-1);
|
|
158
|
+
} else {
|
|
159
|
+
return idx;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
me.tonsky.persistent_sorted_set.cut_n_splice = (function me$tonsky$persistent_sorted_set$cut_n_splice(arr,cut_from,cut_to,splice_from,splice_to,xs){
|
|
163
|
+
var xs_l = xs.length;
|
|
164
|
+
var l1 = (splice_from - cut_from);
|
|
165
|
+
var l2 = (cut_to - splice_to);
|
|
166
|
+
var l1xs = (l1 + xs_l);
|
|
167
|
+
var new_arr = me.tonsky.persistent_sorted_set.arrays.make_array(((l1 + xs_l) + l2));
|
|
168
|
+
var l__7840__auto___8496 = (splice_from - cut_from);
|
|
169
|
+
var n__5593__auto___8497 = l__7840__auto___8496;
|
|
170
|
+
var i__7841__auto___8498 = (0);
|
|
171
|
+
while(true){
|
|
172
|
+
if((i__7841__auto___8498 < n__5593__auto___8497)){
|
|
173
|
+
(new_arr[(i__7841__auto___8498 + (0))] = (arr[(i__7841__auto___8498 + cut_from)]));
|
|
174
|
+
|
|
175
|
+
var G__8500 = (i__7841__auto___8498 + (1));
|
|
176
|
+
i__7841__auto___8498 = G__8500;
|
|
177
|
+
continue;
|
|
178
|
+
} else {
|
|
179
|
+
}
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
var l__7840__auto___8501 = (xs_l - (0));
|
|
184
|
+
var n__5593__auto___8502 = l__7840__auto___8501;
|
|
185
|
+
var i__7841__auto___8503 = (0);
|
|
186
|
+
while(true){
|
|
187
|
+
if((i__7841__auto___8503 < n__5593__auto___8502)){
|
|
188
|
+
(new_arr[(i__7841__auto___8503 + l1)] = (xs[(i__7841__auto___8503 + (0))]));
|
|
189
|
+
|
|
190
|
+
var G__8505 = (i__7841__auto___8503 + (1));
|
|
191
|
+
i__7841__auto___8503 = G__8505;
|
|
192
|
+
continue;
|
|
193
|
+
} else {
|
|
194
|
+
}
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
var l__7840__auto___8506 = (cut_to - splice_to);
|
|
199
|
+
var n__5593__auto___8507 = l__7840__auto___8506;
|
|
200
|
+
var i__7841__auto___8508 = (0);
|
|
201
|
+
while(true){
|
|
202
|
+
if((i__7841__auto___8508 < n__5593__auto___8507)){
|
|
203
|
+
(new_arr[(i__7841__auto___8508 + l1xs)] = (arr[(i__7841__auto___8508 + splice_to)]));
|
|
204
|
+
|
|
205
|
+
var G__8511 = (i__7841__auto___8508 + (1));
|
|
206
|
+
i__7841__auto___8508 = G__8511;
|
|
207
|
+
continue;
|
|
208
|
+
} else {
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return new_arr;
|
|
214
|
+
});
|
|
215
|
+
me.tonsky.persistent_sorted_set.splice = (function me$tonsky$persistent_sorted_set$splice(arr,splice_from,splice_to,xs){
|
|
216
|
+
return me.tonsky.persistent_sorted_set.cut_n_splice(arr,(0),arr.length,splice_from,splice_to,xs);
|
|
217
|
+
});
|
|
218
|
+
me.tonsky.persistent_sorted_set.insert = (function me$tonsky$persistent_sorted_set$insert(arr,idx,xs){
|
|
219
|
+
return me.tonsky.persistent_sorted_set.cut_n_splice(arr,(0),arr.length,idx,idx,xs);
|
|
220
|
+
});
|
|
221
|
+
me.tonsky.persistent_sorted_set.merge_n_split = (function me$tonsky$persistent_sorted_set$merge_n_split(a1,a2){
|
|
222
|
+
var a1_l = a1.length;
|
|
223
|
+
var a2_l = a2.length;
|
|
224
|
+
var total_l = (a1_l + a2_l);
|
|
225
|
+
var r1_l = (total_l >>> (1));
|
|
226
|
+
var r2_l = (total_l - r1_l);
|
|
227
|
+
var r1 = me.tonsky.persistent_sorted_set.arrays.make_array(r1_l);
|
|
228
|
+
var r2 = me.tonsky.persistent_sorted_set.arrays.make_array(r2_l);
|
|
229
|
+
if((a1_l <= r1_l)){
|
|
230
|
+
var l__7840__auto___8524 = (a1_l - (0));
|
|
231
|
+
var n__5593__auto___8525 = l__7840__auto___8524;
|
|
232
|
+
var i__7841__auto___8526 = (0);
|
|
233
|
+
while(true){
|
|
234
|
+
if((i__7841__auto___8526 < n__5593__auto___8525)){
|
|
235
|
+
(r1[(i__7841__auto___8526 + (0))] = (a1[(i__7841__auto___8526 + (0))]));
|
|
236
|
+
|
|
237
|
+
var G__8529 = (i__7841__auto___8526 + (1));
|
|
238
|
+
i__7841__auto___8526 = G__8529;
|
|
239
|
+
continue;
|
|
240
|
+
} else {
|
|
241
|
+
}
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
var l__7840__auto___8530 = ((r1_l - a1_l) - (0));
|
|
246
|
+
var n__5593__auto___8531 = l__7840__auto___8530;
|
|
247
|
+
var i__7841__auto___8532 = (0);
|
|
248
|
+
while(true){
|
|
249
|
+
if((i__7841__auto___8532 < n__5593__auto___8531)){
|
|
250
|
+
(r1[(i__7841__auto___8532 + a1_l)] = (a2[(i__7841__auto___8532 + (0))]));
|
|
251
|
+
|
|
252
|
+
var G__8534 = (i__7841__auto___8532 + (1));
|
|
253
|
+
i__7841__auto___8532 = G__8534;
|
|
254
|
+
continue;
|
|
255
|
+
} else {
|
|
256
|
+
}
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
var l__7840__auto___8540 = (a2_l - (r1_l - a1_l));
|
|
261
|
+
var n__5593__auto___8541 = l__7840__auto___8540;
|
|
262
|
+
var i__7841__auto___8542 = (0);
|
|
263
|
+
while(true){
|
|
264
|
+
if((i__7841__auto___8542 < n__5593__auto___8541)){
|
|
265
|
+
(r2[(i__7841__auto___8542 + (0))] = (a2[(i__7841__auto___8542 + (r1_l - a1_l))]));
|
|
266
|
+
|
|
267
|
+
var G__8543 = (i__7841__auto___8542 + (1));
|
|
268
|
+
i__7841__auto___8542 = G__8543;
|
|
269
|
+
continue;
|
|
270
|
+
} else {
|
|
271
|
+
}
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
} else {
|
|
275
|
+
var l__7840__auto___8548 = (r1_l - (0));
|
|
276
|
+
var n__5593__auto___8552 = l__7840__auto___8548;
|
|
277
|
+
var i__7841__auto___8553 = (0);
|
|
278
|
+
while(true){
|
|
279
|
+
if((i__7841__auto___8553 < n__5593__auto___8552)){
|
|
280
|
+
(r1[(i__7841__auto___8553 + (0))] = (a1[(i__7841__auto___8553 + (0))]));
|
|
281
|
+
|
|
282
|
+
var G__8555 = (i__7841__auto___8553 + (1));
|
|
283
|
+
i__7841__auto___8553 = G__8555;
|
|
284
|
+
continue;
|
|
285
|
+
} else {
|
|
286
|
+
}
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
var l__7840__auto___8556 = (a1_l - r1_l);
|
|
291
|
+
var n__5593__auto___8557 = l__7840__auto___8556;
|
|
292
|
+
var i__7841__auto___8558 = (0);
|
|
293
|
+
while(true){
|
|
294
|
+
if((i__7841__auto___8558 < n__5593__auto___8557)){
|
|
295
|
+
(r2[(i__7841__auto___8558 + (0))] = (a1[(i__7841__auto___8558 + r1_l)]));
|
|
296
|
+
|
|
297
|
+
var G__8559 = (i__7841__auto___8558 + (1));
|
|
298
|
+
i__7841__auto___8558 = G__8559;
|
|
299
|
+
continue;
|
|
300
|
+
} else {
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
var l__7840__auto___8560 = (a2_l - (0));
|
|
306
|
+
var n__5593__auto___8561 = l__7840__auto___8560;
|
|
307
|
+
var i__7841__auto___8562 = (0);
|
|
308
|
+
while(true){
|
|
309
|
+
if((i__7841__auto___8562 < n__5593__auto___8561)){
|
|
310
|
+
(r2[(i__7841__auto___8562 + (a1_l - r1_l))] = (a2[(i__7841__auto___8562 + (0))]));
|
|
311
|
+
|
|
312
|
+
var G__8565 = (i__7841__auto___8562 + (1));
|
|
313
|
+
i__7841__auto___8562 = G__8565;
|
|
314
|
+
continue;
|
|
315
|
+
} else {
|
|
316
|
+
}
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return [r1,r2];
|
|
322
|
+
});
|
|
323
|
+
me.tonsky.persistent_sorted_set.eq_arr = (function me$tonsky$persistent_sorted_set$eq_arr(cmp,a1,a1_from,a1_to,a2,a2_from,a2_to){
|
|
324
|
+
var len = (a1_to - a1_from);
|
|
325
|
+
var and__5000__auto__ = (len === (a2_to - a2_from));
|
|
326
|
+
if(and__5000__auto__){
|
|
327
|
+
var i = (0);
|
|
328
|
+
while(true){
|
|
329
|
+
if((i === len)){
|
|
330
|
+
return true;
|
|
331
|
+
} else {
|
|
332
|
+
if((!(((0) === (function (){var G__8227 = (a1[(i + a1_from)]);
|
|
333
|
+
var G__8228 = (a2[(i + a2_from)]);
|
|
334
|
+
return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8227,G__8228) : cmp.call(null,G__8227,G__8228));
|
|
335
|
+
})())))){
|
|
336
|
+
return false;
|
|
337
|
+
} else {
|
|
338
|
+
var G__8572 = (i + (1));
|
|
339
|
+
i = G__8572;
|
|
340
|
+
continue;
|
|
341
|
+
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
} else {
|
|
347
|
+
return and__5000__auto__;
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
me.tonsky.persistent_sorted_set.check_n_splice = (function me$tonsky$persistent_sorted_set$check_n_splice(cmp,arr,from,to,new_arr){
|
|
351
|
+
if(me.tonsky.persistent_sorted_set.eq_arr(cmp,arr,from,to,new_arr,(0),new_arr.length)){
|
|
352
|
+
return arr;
|
|
353
|
+
} else {
|
|
354
|
+
return me.tonsky.persistent_sorted_set.splice(arr,from,to,new_arr);
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
/**
|
|
358
|
+
* Drop non-nil references and return array of arguments
|
|
359
|
+
*/
|
|
360
|
+
me.tonsky.persistent_sorted_set.return_array = (function me$tonsky$persistent_sorted_set$return_array(var_args){
|
|
361
|
+
var G__8239 = arguments.length;
|
|
362
|
+
switch (G__8239) {
|
|
363
|
+
case 1:
|
|
364
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
365
|
+
|
|
366
|
+
break;
|
|
367
|
+
case 2:
|
|
368
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
369
|
+
|
|
370
|
+
break;
|
|
371
|
+
case 3:
|
|
372
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
373
|
+
|
|
374
|
+
break;
|
|
375
|
+
default:
|
|
376
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
377
|
+
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
(me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$1 = (function (a1){
|
|
382
|
+
return [a1];
|
|
383
|
+
}));
|
|
384
|
+
|
|
385
|
+
(me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2 = (function (a1,a2){
|
|
386
|
+
if(cljs.core.truth_(a1)){
|
|
387
|
+
if(cljs.core.truth_(a2)){
|
|
388
|
+
return [a1,a2];
|
|
389
|
+
} else {
|
|
390
|
+
return [a1];
|
|
391
|
+
}
|
|
392
|
+
} else {
|
|
393
|
+
return [a2];
|
|
394
|
+
}
|
|
395
|
+
}));
|
|
396
|
+
|
|
397
|
+
(me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3 = (function (a1,a2,a3){
|
|
398
|
+
if(cljs.core.truth_(a1)){
|
|
399
|
+
if(cljs.core.truth_(a2)){
|
|
400
|
+
if(cljs.core.truth_(a3)){
|
|
401
|
+
return [a1,a2,a3];
|
|
402
|
+
} else {
|
|
403
|
+
return [a1,a2];
|
|
404
|
+
}
|
|
405
|
+
} else {
|
|
406
|
+
if(cljs.core.truth_(a3)){
|
|
407
|
+
return [a1,a3];
|
|
408
|
+
} else {
|
|
409
|
+
return [a1];
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
} else {
|
|
413
|
+
if(cljs.core.truth_(a2)){
|
|
414
|
+
if(cljs.core.truth_(a3)){
|
|
415
|
+
return [a2,a3];
|
|
416
|
+
} else {
|
|
417
|
+
return [a2];
|
|
418
|
+
}
|
|
419
|
+
} else {
|
|
420
|
+
return [a3];
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}));
|
|
424
|
+
|
|
425
|
+
(me.tonsky.persistent_sorted_set.return_array.cljs$lang$maxFixedArity = 3);
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* @interface
|
|
430
|
+
*/
|
|
431
|
+
me.tonsky.persistent_sorted_set.INode = function(){};
|
|
432
|
+
|
|
433
|
+
var me$tonsky$persistent_sorted_set$INode$node_lim_key$dyn_8577 = (function (_){
|
|
434
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
435
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_lim_key[goog.typeOf(x__5350__auto__)]);
|
|
436
|
+
if((!((m__5351__auto__ == null)))){
|
|
437
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5351__auto__.call(null,_));
|
|
438
|
+
} else {
|
|
439
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_lim_key["_"]);
|
|
440
|
+
if((!((m__5349__auto__ == null)))){
|
|
441
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5349__auto__.call(null,_));
|
|
442
|
+
} else {
|
|
443
|
+
throw cljs.core.missing_protocol("INode.node-lim-key",_);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
me.tonsky.persistent_sorted_set.node_lim_key = (function me$tonsky$persistent_sorted_set$node_lim_key(_){
|
|
448
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1 == null)))))){
|
|
449
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1(_);
|
|
450
|
+
} else {
|
|
451
|
+
return me$tonsky$persistent_sorted_set$INode$node_lim_key$dyn_8577(_);
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
var me$tonsky$persistent_sorted_set$INode$node_len$dyn_8579 = (function (_){
|
|
456
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
457
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_len[goog.typeOf(x__5350__auto__)]);
|
|
458
|
+
if((!((m__5351__auto__ == null)))){
|
|
459
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5351__auto__.call(null,_));
|
|
460
|
+
} else {
|
|
461
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_len["_"]);
|
|
462
|
+
if((!((m__5349__auto__ == null)))){
|
|
463
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5349__auto__.call(null,_));
|
|
464
|
+
} else {
|
|
465
|
+
throw cljs.core.missing_protocol("INode.node-len",_);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
me.tonsky.persistent_sorted_set.node_len = (function me$tonsky$persistent_sorted_set$node_len(_){
|
|
470
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_len$arity$1 == null)))))){
|
|
471
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_len$arity$1(_);
|
|
472
|
+
} else {
|
|
473
|
+
return me$tonsky$persistent_sorted_set$INode$node_len$dyn_8579(_);
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
var me$tonsky$persistent_sorted_set$INode$node_merge$dyn_8581 = (function (_,next){
|
|
478
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
479
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_merge[goog.typeOf(x__5350__auto__)]);
|
|
480
|
+
if((!((m__5351__auto__ == null)))){
|
|
481
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5351__auto__.call(null,_,next));
|
|
482
|
+
} else {
|
|
483
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_merge["_"]);
|
|
484
|
+
if((!((m__5349__auto__ == null)))){
|
|
485
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5349__auto__.call(null,_,next));
|
|
486
|
+
} else {
|
|
487
|
+
throw cljs.core.missing_protocol("INode.node-merge",_);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
me.tonsky.persistent_sorted_set.node_merge = (function me$tonsky$persistent_sorted_set$node_merge(_,next){
|
|
492
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2 == null)))))){
|
|
493
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2(_,next);
|
|
494
|
+
} else {
|
|
495
|
+
return me$tonsky$persistent_sorted_set$INode$node_merge$dyn_8581(_,next);
|
|
496
|
+
}
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
var me$tonsky$persistent_sorted_set$INode$node_merge_n_split$dyn_8586 = (function (_,next){
|
|
500
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
501
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_merge_n_split[goog.typeOf(x__5350__auto__)]);
|
|
502
|
+
if((!((m__5351__auto__ == null)))){
|
|
503
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5351__auto__.call(null,_,next));
|
|
504
|
+
} else {
|
|
505
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_merge_n_split["_"]);
|
|
506
|
+
if((!((m__5349__auto__ == null)))){
|
|
507
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5349__auto__.call(null,_,next));
|
|
508
|
+
} else {
|
|
509
|
+
throw cljs.core.missing_protocol("INode.node-merge-n-split",_);
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
me.tonsky.persistent_sorted_set.node_merge_n_split = (function me$tonsky$persistent_sorted_set$node_merge_n_split(_,next){
|
|
514
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2 == null)))))){
|
|
515
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2(_,next);
|
|
516
|
+
} else {
|
|
517
|
+
return me$tonsky$persistent_sorted_set$INode$node_merge_n_split$dyn_8586(_,next);
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
|
|
521
|
+
var me$tonsky$persistent_sorted_set$INode$node_lookup$dyn_8590 = (function (_,cmp,key){
|
|
522
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
523
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_lookup[goog.typeOf(x__5350__auto__)]);
|
|
524
|
+
if((!((m__5351__auto__ == null)))){
|
|
525
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5351__auto__.call(null,_,cmp,key));
|
|
526
|
+
} else {
|
|
527
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_lookup["_"]);
|
|
528
|
+
if((!((m__5349__auto__ == null)))){
|
|
529
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5349__auto__.call(null,_,cmp,key));
|
|
530
|
+
} else {
|
|
531
|
+
throw cljs.core.missing_protocol("INode.node-lookup",_);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
});
|
|
535
|
+
me.tonsky.persistent_sorted_set.node_lookup = (function me$tonsky$persistent_sorted_set$node_lookup(_,cmp,key){
|
|
536
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3 == null)))))){
|
|
537
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3(_,cmp,key);
|
|
538
|
+
} else {
|
|
539
|
+
return me$tonsky$persistent_sorted_set$INode$node_lookup$dyn_8590(_,cmp,key);
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
var me$tonsky$persistent_sorted_set$INode$node_conj$dyn_8591 = (function (_,cmp,key){
|
|
544
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
545
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_conj[goog.typeOf(x__5350__auto__)]);
|
|
546
|
+
if((!((m__5351__auto__ == null)))){
|
|
547
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5351__auto__.call(null,_,cmp,key));
|
|
548
|
+
} else {
|
|
549
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_conj["_"]);
|
|
550
|
+
if((!((m__5349__auto__ == null)))){
|
|
551
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5349__auto__.call(null,_,cmp,key));
|
|
552
|
+
} else {
|
|
553
|
+
throw cljs.core.missing_protocol("INode.node-conj",_);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
me.tonsky.persistent_sorted_set.node_conj = (function me$tonsky$persistent_sorted_set$node_conj(_,cmp,key){
|
|
558
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3 == null)))))){
|
|
559
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3(_,cmp,key);
|
|
560
|
+
} else {
|
|
561
|
+
return me$tonsky$persistent_sorted_set$INode$node_conj$dyn_8591(_,cmp,key);
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
|
|
565
|
+
var me$tonsky$persistent_sorted_set$INode$node_disj$dyn_8598 = (function (_,cmp,key,root_QMARK_,left,right){
|
|
566
|
+
var x__5350__auto__ = (((_ == null))?null:_);
|
|
567
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_disj[goog.typeOf(x__5350__auto__)]);
|
|
568
|
+
if((!((m__5351__auto__ == null)))){
|
|
569
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$6(_,cmp,key,root_QMARK_,left,right) : m__5351__auto__.call(null,_,cmp,key,root_QMARK_,left,right));
|
|
570
|
+
} else {
|
|
571
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_disj["_"]);
|
|
572
|
+
if((!((m__5349__auto__ == null)))){
|
|
573
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$6(_,cmp,key,root_QMARK_,left,right) : m__5349__auto__.call(null,_,cmp,key,root_QMARK_,left,right));
|
|
574
|
+
} else {
|
|
575
|
+
throw cljs.core.missing_protocol("INode.node-disj",_);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
me.tonsky.persistent_sorted_set.node_disj = (function me$tonsky$persistent_sorted_set$node_disj(_,cmp,key,root_QMARK_,left,right){
|
|
580
|
+
if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6 == null)))))){
|
|
581
|
+
return _.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6(_,cmp,key,root_QMARK_,left,right);
|
|
582
|
+
} else {
|
|
583
|
+
return me$tonsky$persistent_sorted_set$INode$node_disj$dyn_8598(_,cmp,key,root_QMARK_,left,right);
|
|
584
|
+
}
|
|
585
|
+
});
|
|
586
|
+
|
|
587
|
+
me.tonsky.persistent_sorted_set.rotate = (function me$tonsky$persistent_sorted_set$rotate(node,root_QMARK_,left,right){
|
|
588
|
+
if(cljs.core.truth_(root_QMARK_)){
|
|
589
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$1(node);
|
|
590
|
+
} else {
|
|
591
|
+
if((me.tonsky.persistent_sorted_set.node_len(node) > me.tonsky.persistent_sorted_set.min_len)){
|
|
592
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3(left,node,right);
|
|
593
|
+
} else {
|
|
594
|
+
if(cljs.core.truth_((function (){var and__5000__auto__ = left;
|
|
595
|
+
if(cljs.core.truth_(and__5000__auto__)){
|
|
596
|
+
return (me.tonsky.persistent_sorted_set.node_len(left) <= me.tonsky.persistent_sorted_set.min_len);
|
|
597
|
+
} else {
|
|
598
|
+
return and__5000__auto__;
|
|
599
|
+
}
|
|
600
|
+
})())){
|
|
601
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2(me.tonsky.persistent_sorted_set.node_merge(left,node),right);
|
|
602
|
+
} else {
|
|
603
|
+
if(cljs.core.truth_((function (){var and__5000__auto__ = right;
|
|
604
|
+
if(cljs.core.truth_(and__5000__auto__)){
|
|
605
|
+
return (me.tonsky.persistent_sorted_set.node_len(right) <= me.tonsky.persistent_sorted_set.min_len);
|
|
606
|
+
} else {
|
|
607
|
+
return and__5000__auto__;
|
|
608
|
+
}
|
|
609
|
+
})())){
|
|
610
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2(left,me.tonsky.persistent_sorted_set.node_merge(node,right));
|
|
611
|
+
} else {
|
|
612
|
+
if(cljs.core.truth_((function (){var and__5000__auto__ = left;
|
|
613
|
+
if(cljs.core.truth_(and__5000__auto__)){
|
|
614
|
+
return (((right == null)) || ((me.tonsky.persistent_sorted_set.node_len(left) < me.tonsky.persistent_sorted_set.node_len(right))));
|
|
615
|
+
} else {
|
|
616
|
+
return and__5000__auto__;
|
|
617
|
+
}
|
|
618
|
+
})())){
|
|
619
|
+
var nodes = me.tonsky.persistent_sorted_set.node_merge_n_split(left,node);
|
|
620
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3((nodes[(0)]),(nodes[(1)]),right);
|
|
621
|
+
} else {
|
|
622
|
+
var nodes = me.tonsky.persistent_sorted_set.node_merge_n_split(node,right);
|
|
623
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3(left,(nodes[(0)]),(nodes[(1)]));
|
|
624
|
+
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
});
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* @constructor
|
|
634
|
+
* @implements {me.tonsky.persistent_sorted_set.INode}
|
|
635
|
+
*/
|
|
636
|
+
me.tonsky.persistent_sorted_set.Node = (function (keys,pointers){
|
|
637
|
+
this.keys = keys;
|
|
638
|
+
this.pointers = pointers;
|
|
639
|
+
});
|
|
640
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$ = cljs.core.PROTOCOL_SENTINEL);
|
|
641
|
+
|
|
642
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1 = (function (_){
|
|
643
|
+
var self__ = this;
|
|
644
|
+
var ___$1 = this;
|
|
645
|
+
var arr__7870__auto__ = self__.keys;
|
|
646
|
+
return (arr__7870__auto__[(arr__7870__auto__.length - (1))]);
|
|
647
|
+
}));
|
|
648
|
+
|
|
649
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_len$arity$1 = (function (_){
|
|
650
|
+
var self__ = this;
|
|
651
|
+
var ___$1 = this;
|
|
652
|
+
return self__.keys.length;
|
|
653
|
+
}));
|
|
654
|
+
|
|
655
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2 = (function (_,next){
|
|
656
|
+
var self__ = this;
|
|
657
|
+
var ___$1 = this;
|
|
658
|
+
return (new me.tonsky.persistent_sorted_set.Node(me.tonsky.persistent_sorted_set.arrays.aconcat(self__.keys,next.keys),me.tonsky.persistent_sorted_set.arrays.aconcat(self__.pointers,next.pointers)));
|
|
659
|
+
}));
|
|
660
|
+
|
|
661
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2 = (function (_,next){
|
|
662
|
+
var self__ = this;
|
|
663
|
+
var ___$1 = this;
|
|
664
|
+
var ks = me.tonsky.persistent_sorted_set.merge_n_split(self__.keys,next.keys);
|
|
665
|
+
var ps = me.tonsky.persistent_sorted_set.merge_n_split(self__.pointers,next.pointers);
|
|
666
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2((new me.tonsky.persistent_sorted_set.Node((ks[(0)]),(ps[(0)]))),(new me.tonsky.persistent_sorted_set.Node((ks[(1)]),(ps[(1)]))));
|
|
667
|
+
}));
|
|
668
|
+
|
|
669
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3 = (function (_,cmp,key){
|
|
670
|
+
var self__ = this;
|
|
671
|
+
var ___$1 = this;
|
|
672
|
+
var idx = me.tonsky.persistent_sorted_set.lookup_range(cmp,self__.keys,key);
|
|
673
|
+
if(((-1) === idx)){
|
|
674
|
+
return null;
|
|
675
|
+
} else {
|
|
676
|
+
return me.tonsky.persistent_sorted_set.node_lookup((self__.pointers[idx]),cmp,key);
|
|
677
|
+
}
|
|
678
|
+
}));
|
|
679
|
+
|
|
680
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3 = (function (_,cmp,key){
|
|
681
|
+
var self__ = this;
|
|
682
|
+
var ___$1 = this;
|
|
683
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,self__.keys,(self__.keys.length - (2)),key);
|
|
684
|
+
var nodes = me.tonsky.persistent_sorted_set.node_conj((self__.pointers[idx]),cmp,key);
|
|
685
|
+
if(cljs.core.truth_(nodes)){
|
|
686
|
+
var new_keys = me.tonsky.persistent_sorted_set.check_n_splice(cmp,self__.keys,idx,(idx + (1)),me.tonsky.persistent_sorted_set.arrays.amap(me.tonsky.persistent_sorted_set.node_lim_key,nodes));
|
|
687
|
+
var new_pointers = me.tonsky.persistent_sorted_set.splice(self__.pointers,idx,(idx + (1)),nodes);
|
|
688
|
+
if((new_pointers.length <= me.tonsky.persistent_sorted_set.max_len)){
|
|
689
|
+
return [(new me.tonsky.persistent_sorted_set.Node(new_keys,new_pointers))];
|
|
690
|
+
} else {
|
|
691
|
+
var middle = (new_pointers.length >>> (1));
|
|
692
|
+
return [(new me.tonsky.persistent_sorted_set.Node(new_keys.slice((0),middle),new_pointers.slice((0),middle))),(new me.tonsky.persistent_sorted_set.Node(new_keys.slice(middle),new_pointers.slice(middle)))];
|
|
693
|
+
}
|
|
694
|
+
} else {
|
|
695
|
+
return null;
|
|
696
|
+
}
|
|
697
|
+
}));
|
|
698
|
+
|
|
699
|
+
(me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6 = (function (_,cmp,key,root_QMARK_,left,right){
|
|
700
|
+
var self__ = this;
|
|
701
|
+
var ___$1 = this;
|
|
702
|
+
var idx = me.tonsky.persistent_sorted_set.lookup_range(cmp,self__.keys,key);
|
|
703
|
+
if(((-1) === idx)){
|
|
704
|
+
return null;
|
|
705
|
+
} else {
|
|
706
|
+
var child = (self__.pointers[idx]);
|
|
707
|
+
var left_child = ((((idx - (1)) >= (0)))?(self__.pointers[(idx - (1))]):null);
|
|
708
|
+
var right_child = ((((idx + (1)) < self__.pointers.length))?(self__.pointers[(idx + (1))]):null);
|
|
709
|
+
var disjned = me.tonsky.persistent_sorted_set.node_disj(child,cmp,key,false,left_child,right_child);
|
|
710
|
+
if(cljs.core.truth_(disjned)){
|
|
711
|
+
var left_idx = (cljs.core.truth_(left_child)?(idx - (1)):idx);
|
|
712
|
+
var right_idx = (cljs.core.truth_(right_child)?((2) + idx):((1) + idx));
|
|
713
|
+
var new_keys = me.tonsky.persistent_sorted_set.check_n_splice(cmp,self__.keys,left_idx,right_idx,me.tonsky.persistent_sorted_set.arrays.amap(me.tonsky.persistent_sorted_set.node_lim_key,disjned));
|
|
714
|
+
var new_pointers = me.tonsky.persistent_sorted_set.splice(self__.pointers,left_idx,right_idx,disjned);
|
|
715
|
+
return me.tonsky.persistent_sorted_set.rotate((new me.tonsky.persistent_sorted_set.Node(new_keys,new_pointers)),root_QMARK_,left,right);
|
|
716
|
+
} else {
|
|
717
|
+
return null;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}));
|
|
721
|
+
|
|
722
|
+
(me.tonsky.persistent_sorted_set.Node.getBasis = (function (){
|
|
723
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"keys","keys",-1586012071,null),new cljs.core.Symbol(null,"pointers","pointers",-1669058356,null)], null);
|
|
724
|
+
}));
|
|
725
|
+
|
|
726
|
+
(me.tonsky.persistent_sorted_set.Node.cljs$lang$type = true);
|
|
727
|
+
|
|
728
|
+
(me.tonsky.persistent_sorted_set.Node.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/Node");
|
|
729
|
+
|
|
730
|
+
(me.tonsky.persistent_sorted_set.Node.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
731
|
+
return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/Node");
|
|
732
|
+
}));
|
|
733
|
+
|
|
734
|
+
/**
|
|
735
|
+
* Positional factory function for me.tonsky.persistent-sorted-set/Node.
|
|
736
|
+
*/
|
|
737
|
+
me.tonsky.persistent_sorted_set.__GT_Node = (function me$tonsky$persistent_sorted_set$__GT_Node(keys,pointers){
|
|
738
|
+
return (new me.tonsky.persistent_sorted_set.Node(keys,pointers));
|
|
739
|
+
});
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* @constructor
|
|
744
|
+
* @implements {me.tonsky.persistent_sorted_set.INode}
|
|
745
|
+
*/
|
|
746
|
+
me.tonsky.persistent_sorted_set.Leaf = (function (keys){
|
|
747
|
+
this.keys = keys;
|
|
748
|
+
});
|
|
749
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$ = cljs.core.PROTOCOL_SENTINEL);
|
|
750
|
+
|
|
751
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1 = (function (_){
|
|
752
|
+
var self__ = this;
|
|
753
|
+
var ___$1 = this;
|
|
754
|
+
var arr__7870__auto__ = self__.keys;
|
|
755
|
+
return (arr__7870__auto__[(arr__7870__auto__.length - (1))]);
|
|
756
|
+
}));
|
|
757
|
+
|
|
758
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_len$arity$1 = (function (_){
|
|
759
|
+
var self__ = this;
|
|
760
|
+
var ___$1 = this;
|
|
761
|
+
return self__.keys.length;
|
|
762
|
+
}));
|
|
763
|
+
|
|
764
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2 = (function (_,next){
|
|
765
|
+
var self__ = this;
|
|
766
|
+
var ___$1 = this;
|
|
767
|
+
return (new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.arrays.aconcat(self__.keys,next.keys)));
|
|
768
|
+
}));
|
|
769
|
+
|
|
770
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2 = (function (_,next){
|
|
771
|
+
var self__ = this;
|
|
772
|
+
var ___$1 = this;
|
|
773
|
+
var ks = me.tonsky.persistent_sorted_set.merge_n_split(self__.keys,next.keys);
|
|
774
|
+
return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2((new me.tonsky.persistent_sorted_set.Leaf((ks[(0)]))),(new me.tonsky.persistent_sorted_set.Leaf((ks[(1)]))));
|
|
775
|
+
}));
|
|
776
|
+
|
|
777
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3 = (function (_,cmp,key){
|
|
778
|
+
var self__ = this;
|
|
779
|
+
var ___$1 = this;
|
|
780
|
+
var idx = me.tonsky.persistent_sorted_set.lookup_exact(cmp,self__.keys,key);
|
|
781
|
+
if(((-1) === idx)){
|
|
782
|
+
return null;
|
|
783
|
+
} else {
|
|
784
|
+
return (self__.keys[idx]);
|
|
785
|
+
}
|
|
786
|
+
}));
|
|
787
|
+
|
|
788
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3 = (function (_,cmp,key){
|
|
789
|
+
var self__ = this;
|
|
790
|
+
var ___$1 = this;
|
|
791
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,self__.keys,(self__.keys.length - (1)),key);
|
|
792
|
+
var keys_l = self__.keys.length;
|
|
793
|
+
if((((idx < keys_l)) && (((0) === (function (){var G__8288 = key;
|
|
794
|
+
var G__8289 = (self__.keys[idx]);
|
|
795
|
+
return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8288,G__8289) : cmp.call(null,G__8288,G__8289));
|
|
796
|
+
})())))){
|
|
797
|
+
return null;
|
|
798
|
+
} else {
|
|
799
|
+
if((keys_l === me.tonsky.persistent_sorted_set.max_len)){
|
|
800
|
+
var middle = ((keys_l + (1)) >>> (1));
|
|
801
|
+
if((idx > middle)){
|
|
802
|
+
return [(new me.tonsky.persistent_sorted_set.Leaf(self__.keys.slice((0),middle))),(new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.cut_n_splice(self__.keys,middle,keys_l,idx,idx,[key])))];
|
|
803
|
+
} else {
|
|
804
|
+
return [(new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.cut_n_splice(self__.keys,(0),middle,idx,idx,[key]))),(new me.tonsky.persistent_sorted_set.Leaf(self__.keys.slice(middle,keys_l)))];
|
|
805
|
+
}
|
|
806
|
+
} else {
|
|
807
|
+
return [(new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.splice(self__.keys,idx,idx,[key])))];
|
|
808
|
+
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
}));
|
|
812
|
+
|
|
813
|
+
(me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6 = (function (_,cmp,key,root_QMARK_,left,right){
|
|
814
|
+
var self__ = this;
|
|
815
|
+
var ___$1 = this;
|
|
816
|
+
var idx = me.tonsky.persistent_sorted_set.lookup_exact(cmp,self__.keys,key);
|
|
817
|
+
if(((-1) === idx)){
|
|
818
|
+
return null;
|
|
819
|
+
} else {
|
|
820
|
+
var new_keys = me.tonsky.persistent_sorted_set.splice(self__.keys,idx,(idx + (1)),[]);
|
|
821
|
+
return me.tonsky.persistent_sorted_set.rotate((new me.tonsky.persistent_sorted_set.Leaf(new_keys)),root_QMARK_,left,right);
|
|
822
|
+
}
|
|
823
|
+
}));
|
|
824
|
+
|
|
825
|
+
(me.tonsky.persistent_sorted_set.Leaf.getBasis = (function (){
|
|
826
|
+
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"keys","keys",-1586012071,null)], null);
|
|
827
|
+
}));
|
|
828
|
+
|
|
829
|
+
(me.tonsky.persistent_sorted_set.Leaf.cljs$lang$type = true);
|
|
830
|
+
|
|
831
|
+
(me.tonsky.persistent_sorted_set.Leaf.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/Leaf");
|
|
832
|
+
|
|
833
|
+
(me.tonsky.persistent_sorted_set.Leaf.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
834
|
+
return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/Leaf");
|
|
835
|
+
}));
|
|
836
|
+
|
|
837
|
+
/**
|
|
838
|
+
* Positional factory function for me.tonsky.persistent-sorted-set/Leaf.
|
|
839
|
+
*/
|
|
840
|
+
me.tonsky.persistent_sorted_set.__GT_Leaf = (function me$tonsky$persistent_sorted_set$__GT_Leaf(keys){
|
|
841
|
+
return (new me.tonsky.persistent_sorted_set.Leaf(keys));
|
|
842
|
+
});
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
me.tonsky.persistent_sorted_set.uninitialized_hash = null;
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* @constructor
|
|
850
|
+
* @implements {cljs.core.IReversible}
|
|
851
|
+
* @implements {cljs.core.ITransientSet}
|
|
852
|
+
* @implements {cljs.core.IEquiv}
|
|
853
|
+
* @implements {cljs.core.IHash}
|
|
854
|
+
* @implements {cljs.core.IFn}
|
|
855
|
+
* @implements {cljs.core.ICollection}
|
|
856
|
+
* @implements {cljs.core.IEditableCollection}
|
|
857
|
+
* @implements {cljs.core.ISet}
|
|
858
|
+
* @implements {cljs.core.IEmptyableCollection}
|
|
859
|
+
* @implements {cljs.core.ICounted}
|
|
860
|
+
* @implements {cljs.core.ISeqable}
|
|
861
|
+
* @implements {cljs.core.IMeta}
|
|
862
|
+
* @implements {cljs.core.ICloneable}
|
|
863
|
+
* @implements {cljs.core.ITransientCollection}
|
|
864
|
+
* @implements {cljs.core.IPrintWithWriter}
|
|
865
|
+
* @implements {cljs.core.IWithMeta}
|
|
866
|
+
* @implements {cljs.core.ILookup}
|
|
867
|
+
* @implements {cljs.core.IReduce}
|
|
868
|
+
*/
|
|
869
|
+
me.tonsky.persistent_sorted_set.BTSet = (function (root,shift,cnt,comparator,meta,_hash){
|
|
870
|
+
this.root = root;
|
|
871
|
+
this.shift = shift;
|
|
872
|
+
this.cnt = cnt;
|
|
873
|
+
this.comparator = comparator;
|
|
874
|
+
this.meta = meta;
|
|
875
|
+
this._hash = _hash;
|
|
876
|
+
this.cljs$lang$protocol_mask$partition0$ = 2297303311;
|
|
877
|
+
this.cljs$lang$protocol_mask$partition1$ = 8332;
|
|
878
|
+
});
|
|
879
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.toString = (function (){
|
|
880
|
+
var self__ = this;
|
|
881
|
+
var this$ = this;
|
|
882
|
+
return cljs.core.pr_str_STAR_(this$);
|
|
883
|
+
}));
|
|
884
|
+
|
|
885
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (_,k){
|
|
886
|
+
var self__ = this;
|
|
887
|
+
var ___$1 = this;
|
|
888
|
+
return me.tonsky.persistent_sorted_set.node_lookup(self__.root,self__.comparator,k);
|
|
889
|
+
}));
|
|
890
|
+
|
|
891
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (_,k,not_found){
|
|
892
|
+
var self__ = this;
|
|
893
|
+
var ___$1 = this;
|
|
894
|
+
var or__5002__auto__ = me.tonsky.persistent_sorted_set.node_lookup(self__.root,self__.comparator,k);
|
|
895
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
896
|
+
return or__5002__auto__;
|
|
897
|
+
} else {
|
|
898
|
+
return not_found;
|
|
899
|
+
}
|
|
900
|
+
}));
|
|
901
|
+
|
|
902
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this$,writer,opts){
|
|
903
|
+
var self__ = this;
|
|
904
|
+
var this$__$1 = this;
|
|
905
|
+
return cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,"#{"," ","}",opts,cljs.core.seq(this$__$1));
|
|
906
|
+
}));
|
|
907
|
+
|
|
908
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_){
|
|
909
|
+
var self__ = this;
|
|
910
|
+
var ___$1 = this;
|
|
911
|
+
return self__.meta;
|
|
912
|
+
}));
|
|
913
|
+
|
|
914
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (_){
|
|
915
|
+
var self__ = this;
|
|
916
|
+
var ___$1 = this;
|
|
917
|
+
return (new me.tonsky.persistent_sorted_set.BTSet(self__.root,self__.shift,self__.cnt,self__.comparator,self__.meta,self__._hash));
|
|
918
|
+
}));
|
|
919
|
+
|
|
920
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ICounted$_count$arity$1 = (function (_){
|
|
921
|
+
var self__ = this;
|
|
922
|
+
var ___$1 = this;
|
|
923
|
+
return self__.cnt;
|
|
924
|
+
}));
|
|
925
|
+
|
|
926
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IReversible$_rseq$arity$1 = (function (this$){
|
|
927
|
+
var self__ = this;
|
|
928
|
+
var this$__$1 = this;
|
|
929
|
+
return cljs.core.rseq((me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1)));
|
|
930
|
+
}));
|
|
931
|
+
|
|
932
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IHash$_hash$arity$1 = (function (this$){
|
|
933
|
+
var self__ = this;
|
|
934
|
+
var this$__$1 = this;
|
|
935
|
+
var h__5111__auto__ = self__._hash;
|
|
936
|
+
if((!((h__5111__auto__ == null)))){
|
|
937
|
+
return h__5111__auto__;
|
|
938
|
+
} else {
|
|
939
|
+
var h__5111__auto____$1 = cljs.core.hash_unordered_coll(this$__$1);
|
|
940
|
+
(self__._hash = h__5111__auto____$1);
|
|
941
|
+
|
|
942
|
+
return h__5111__auto____$1;
|
|
943
|
+
}
|
|
944
|
+
}));
|
|
945
|
+
|
|
946
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this$,other){
|
|
947
|
+
var self__ = this;
|
|
948
|
+
var this$__$1 = this;
|
|
949
|
+
return ((cljs.core.set_QMARK_(other)) && ((((self__.cnt === cljs.core.count(other))) && (cljs.core.every_QMARK_((function (p1__8290_SHARP_){
|
|
950
|
+
return cljs.core.contains_QMARK_(this$__$1,p1__8290_SHARP_);
|
|
951
|
+
}),other)))));
|
|
952
|
+
}));
|
|
953
|
+
|
|
954
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = (function (this$){
|
|
955
|
+
var self__ = this;
|
|
956
|
+
var this$__$1 = this;
|
|
957
|
+
return this$__$1;
|
|
958
|
+
}));
|
|
959
|
+
|
|
960
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = (function (_){
|
|
961
|
+
var self__ = this;
|
|
962
|
+
var ___$1 = this;
|
|
963
|
+
return (new me.tonsky.persistent_sorted_set.BTSet((new me.tonsky.persistent_sorted_set.Leaf([])),(0),(0),self__.comparator,self__.meta,null));
|
|
964
|
+
}));
|
|
965
|
+
|
|
966
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ISet$_disjoin$arity$2 = (function (this$,key){
|
|
967
|
+
var self__ = this;
|
|
968
|
+
var this$__$1 = this;
|
|
969
|
+
return (me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.disj.call(null,this$__$1,key,self__.comparator));
|
|
970
|
+
}));
|
|
971
|
+
|
|
972
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IReduce$_reduce$arity$2 = (function (this$,f){
|
|
973
|
+
var self__ = this;
|
|
974
|
+
var this$__$1 = this;
|
|
975
|
+
var temp__5802__auto__ = (me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1));
|
|
976
|
+
if(cljs.core.truth_(temp__5802__auto__)){
|
|
977
|
+
var i = temp__5802__auto__;
|
|
978
|
+
return cljs.core._reduce(i,f);
|
|
979
|
+
} else {
|
|
980
|
+
return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));
|
|
981
|
+
}
|
|
982
|
+
}));
|
|
983
|
+
|
|
984
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IReduce$_reduce$arity$3 = (function (this$,f,start){
|
|
985
|
+
var self__ = this;
|
|
986
|
+
var this$__$1 = this;
|
|
987
|
+
var temp__5802__auto__ = (me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1));
|
|
988
|
+
if(cljs.core.truth_(temp__5802__auto__)){
|
|
989
|
+
var i = temp__5802__auto__;
|
|
990
|
+
return cljs.core._reduce(i,f,start);
|
|
991
|
+
} else {
|
|
992
|
+
return start;
|
|
993
|
+
}
|
|
994
|
+
}));
|
|
995
|
+
|
|
996
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = (function (this$,key){
|
|
997
|
+
var self__ = this;
|
|
998
|
+
var this$__$1 = this;
|
|
999
|
+
return (me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.conj.call(null,this$__$1,key,self__.comparator));
|
|
1000
|
+
}));
|
|
1001
|
+
|
|
1002
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = (function (this$){
|
|
1003
|
+
var self__ = this;
|
|
1004
|
+
var this$__$1 = this;
|
|
1005
|
+
return this$__$1;
|
|
1006
|
+
}));
|
|
1007
|
+
|
|
1008
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this$){
|
|
1009
|
+
var self__ = this;
|
|
1010
|
+
var this$__$1 = this;
|
|
1011
|
+
return (me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1));
|
|
1012
|
+
}));
|
|
1013
|
+
|
|
1014
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 = (function (this$,key){
|
|
1015
|
+
var self__ = this;
|
|
1016
|
+
var this$__$1 = this;
|
|
1017
|
+
return (me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.disj.call(null,this$__$1,key,self__.comparator));
|
|
1018
|
+
}));
|
|
1019
|
+
|
|
1020
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_,new_meta){
|
|
1021
|
+
var self__ = this;
|
|
1022
|
+
var ___$1 = this;
|
|
1023
|
+
return (new me.tonsky.persistent_sorted_set.BTSet(self__.root,self__.shift,self__.cnt,self__.comparator,new_meta,self__._hash));
|
|
1024
|
+
}));
|
|
1025
|
+
|
|
1026
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this$,key){
|
|
1027
|
+
var self__ = this;
|
|
1028
|
+
var this$__$1 = this;
|
|
1029
|
+
return (me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.conj.call(null,this$__$1,key,self__.comparator));
|
|
1030
|
+
}));
|
|
1031
|
+
|
|
1032
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.call = (function (unused__10318__auto__){
|
|
1033
|
+
var self__ = this;
|
|
1034
|
+
var self__ = this;
|
|
1035
|
+
var G__8300 = (arguments.length - (1));
|
|
1036
|
+
switch (G__8300) {
|
|
1037
|
+
case (1):
|
|
1038
|
+
return self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));
|
|
1039
|
+
|
|
1040
|
+
break;
|
|
1041
|
+
case (2):
|
|
1042
|
+
return self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));
|
|
1043
|
+
|
|
1044
|
+
break;
|
|
1045
|
+
default:
|
|
1046
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join('')));
|
|
1047
|
+
|
|
1048
|
+
}
|
|
1049
|
+
}));
|
|
1050
|
+
|
|
1051
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.apply = (function (self__,args8293){
|
|
1052
|
+
var self__ = this;
|
|
1053
|
+
var self____$1 = this;
|
|
1054
|
+
return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args8293)));
|
|
1055
|
+
}));
|
|
1056
|
+
|
|
1057
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IFn$_invoke$arity$1 = (function (k){
|
|
1058
|
+
var self__ = this;
|
|
1059
|
+
var this$ = this;
|
|
1060
|
+
return this$.cljs$core$ILookup$_lookup$arity$2(null,k);
|
|
1061
|
+
}));
|
|
1062
|
+
|
|
1063
|
+
(me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IFn$_invoke$arity$2 = (function (k,not_found){
|
|
1064
|
+
var self__ = this;
|
|
1065
|
+
var this$ = this;
|
|
1066
|
+
return this$.cljs$core$ILookup$_lookup$arity$3(null,k,not_found);
|
|
1067
|
+
}));
|
|
1068
|
+
|
|
1069
|
+
(me.tonsky.persistent_sorted_set.BTSet.getBasis = (function (){
|
|
1070
|
+
return new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"root","root",1191874074,null),new cljs.core.Symbol(null,"shift","shift",-1657295705,null),new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),new cljs.core.Symbol(null,"comparator","comparator",-509539107,null),new cljs.core.Symbol(null,"meta","meta",-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,"_hash","_hash",-2130838312,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null))], null);
|
|
1071
|
+
}));
|
|
1072
|
+
|
|
1073
|
+
(me.tonsky.persistent_sorted_set.BTSet.cljs$lang$type = true);
|
|
1074
|
+
|
|
1075
|
+
(me.tonsky.persistent_sorted_set.BTSet.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/BTSet");
|
|
1076
|
+
|
|
1077
|
+
(me.tonsky.persistent_sorted_set.BTSet.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
1078
|
+
return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/BTSet");
|
|
1079
|
+
}));
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* Positional factory function for me.tonsky.persistent-sorted-set/BTSet.
|
|
1083
|
+
*/
|
|
1084
|
+
me.tonsky.persistent_sorted_set.__GT_BTSet = (function me$tonsky$persistent_sorted_set$__GT_BTSet(root,shift,cnt,comparator,meta,_hash){
|
|
1085
|
+
return (new me.tonsky.persistent_sorted_set.BTSet(root,shift,cnt,comparator,meta,_hash));
|
|
1086
|
+
});
|
|
1087
|
+
|
|
1088
|
+
me.tonsky.persistent_sorted_set.keys_for = (function me$tonsky$persistent_sorted_set$keys_for(set,path){
|
|
1089
|
+
var level = set.shift;
|
|
1090
|
+
var node = set.root;
|
|
1091
|
+
while(true){
|
|
1092
|
+
if((level > (0))){
|
|
1093
|
+
var G__8641 = (level - (1));
|
|
1094
|
+
var G__8642 = (node.pointers[me.tonsky.persistent_sorted_set.path_get(path,level)]);
|
|
1095
|
+
level = G__8641;
|
|
1096
|
+
node = G__8642;
|
|
1097
|
+
continue;
|
|
1098
|
+
} else {
|
|
1099
|
+
return node.keys;
|
|
1100
|
+
}
|
|
1101
|
+
break;
|
|
1102
|
+
}
|
|
1103
|
+
});
|
|
1104
|
+
me.tonsky.persistent_sorted_set.alter_btset = (function me$tonsky$persistent_sorted_set$alter_btset(set,root,shift,cnt){
|
|
1105
|
+
return (new me.tonsky.persistent_sorted_set.BTSet(root,shift,cnt,set.comparator,set.meta,null));
|
|
1106
|
+
});
|
|
1107
|
+
me.tonsky.persistent_sorted_set._next_path = (function me$tonsky$persistent_sorted_set$_next_path(node,path,level){
|
|
1108
|
+
var idx = me.tonsky.persistent_sorted_set.path_get(path,level);
|
|
1109
|
+
if((level > (0))){
|
|
1110
|
+
var sub_path = (function (){var G__8305 = (node.pointers[idx]);
|
|
1111
|
+
var G__8306 = path;
|
|
1112
|
+
var G__8307 = (level - (1));
|
|
1113
|
+
return (me.tonsky.persistent_sorted_set._next_path.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set._next_path.cljs$core$IFn$_invoke$arity$3(G__8305,G__8306,G__8307) : me.tonsky.persistent_sorted_set._next_path.call(null,G__8305,G__8306,G__8307));
|
|
1114
|
+
})();
|
|
1115
|
+
if((sub_path == null)){
|
|
1116
|
+
if(((idx + (1)) < node.pointers.length)){
|
|
1117
|
+
return me.tonsky.persistent_sorted_set.path_set((0),level,(idx + (1)));
|
|
1118
|
+
} else {
|
|
1119
|
+
return null;
|
|
1120
|
+
}
|
|
1121
|
+
} else {
|
|
1122
|
+
return me.tonsky.persistent_sorted_set.path_set(sub_path,level,idx);
|
|
1123
|
+
}
|
|
1124
|
+
} else {
|
|
1125
|
+
if(((idx + (1)) < node.keys.length)){
|
|
1126
|
+
return me.tonsky.persistent_sorted_set.path_set((0),(0),(idx + (1)));
|
|
1127
|
+
} else {
|
|
1128
|
+
return null;
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
});
|
|
1132
|
+
/**
|
|
1133
|
+
* Returns rightmost path possible starting from node and going deeper
|
|
1134
|
+
*/
|
|
1135
|
+
me.tonsky.persistent_sorted_set._rpath = (function me$tonsky$persistent_sorted_set$_rpath(node,path,level){
|
|
1136
|
+
var node__$1 = node;
|
|
1137
|
+
var path__$1 = path;
|
|
1138
|
+
var level__$1 = level;
|
|
1139
|
+
while(true){
|
|
1140
|
+
if((level__$1 > (0))){
|
|
1141
|
+
var G__8646 = (function (){var arr__7870__auto__ = node__$1.pointers;
|
|
1142
|
+
return (arr__7870__auto__[(arr__7870__auto__.length - (1))]);
|
|
1143
|
+
})();
|
|
1144
|
+
var G__8647 = me.tonsky.persistent_sorted_set.path_set(path__$1,level__$1,(node__$1.pointers.length - (1)));
|
|
1145
|
+
var G__8648 = (level__$1 - (1));
|
|
1146
|
+
node__$1 = G__8646;
|
|
1147
|
+
path__$1 = G__8647;
|
|
1148
|
+
level__$1 = G__8648;
|
|
1149
|
+
continue;
|
|
1150
|
+
} else {
|
|
1151
|
+
return me.tonsky.persistent_sorted_set.path_set(path__$1,(0),(node__$1.keys.length - (1)));
|
|
1152
|
+
}
|
|
1153
|
+
break;
|
|
1154
|
+
}
|
|
1155
|
+
});
|
|
1156
|
+
/**
|
|
1157
|
+
* Returns path representing next item after `path` in natural traversal order.
|
|
1158
|
+
* Will overflow at leaf if at the end of the tree
|
|
1159
|
+
*/
|
|
1160
|
+
me.tonsky.persistent_sorted_set.next_path = (function me$tonsky$persistent_sorted_set$next_path(set,path){
|
|
1161
|
+
if((path < (0))){
|
|
1162
|
+
return (0);
|
|
1163
|
+
} else {
|
|
1164
|
+
var or__5002__auto__ = me.tonsky.persistent_sorted_set._next_path(set.root,path,set.shift);
|
|
1165
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
1166
|
+
return or__5002__auto__;
|
|
1167
|
+
} else {
|
|
1168
|
+
return me.tonsky.persistent_sorted_set.path_inc(me.tonsky.persistent_sorted_set._rpath(set.root,(0),set.shift));
|
|
1169
|
+
}
|
|
1170
|
+
}
|
|
1171
|
+
});
|
|
1172
|
+
me.tonsky.persistent_sorted_set._prev_path = (function me$tonsky$persistent_sorted_set$_prev_path(node,path,level){
|
|
1173
|
+
var idx = me.tonsky.persistent_sorted_set.path_get(path,level);
|
|
1174
|
+
if(((((0) === level)) && (((0) === idx)))){
|
|
1175
|
+
return null;
|
|
1176
|
+
} else {
|
|
1177
|
+
if(((0) === level)){
|
|
1178
|
+
return me.tonsky.persistent_sorted_set.path_set((0),(0),(idx - (1)));
|
|
1179
|
+
} else {
|
|
1180
|
+
if((idx >= me.tonsky.persistent_sorted_set.node_len(node))){
|
|
1181
|
+
return me.tonsky.persistent_sorted_set._rpath(node,path,level);
|
|
1182
|
+
} else {
|
|
1183
|
+
var path_SINGLEQUOTE_ = (function (){var G__8311 = (node.pointers[idx]);
|
|
1184
|
+
var G__8312 = path;
|
|
1185
|
+
var G__8313 = (level - (1));
|
|
1186
|
+
return (me.tonsky.persistent_sorted_set._prev_path.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set._prev_path.cljs$core$IFn$_invoke$arity$3(G__8311,G__8312,G__8313) : me.tonsky.persistent_sorted_set._prev_path.call(null,G__8311,G__8312,G__8313));
|
|
1187
|
+
})();
|
|
1188
|
+
if((!((path_SINGLEQUOTE_ == null)))){
|
|
1189
|
+
return me.tonsky.persistent_sorted_set.path_set(path_SINGLEQUOTE_,level,idx);
|
|
1190
|
+
} else {
|
|
1191
|
+
if(((0) === idx)){
|
|
1192
|
+
return null;
|
|
1193
|
+
} else {
|
|
1194
|
+
var path_SINGLEQUOTE___$1 = me.tonsky.persistent_sorted_set._rpath((node.pointers[(idx - (1))]),path,(level - (1)));
|
|
1195
|
+
return me.tonsky.persistent_sorted_set.path_set(path_SINGLEQUOTE___$1,level,(idx - (1)));
|
|
1196
|
+
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
}
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
});
|
|
1204
|
+
/**
|
|
1205
|
+
* Returns path representing previous item before `path` in natural traversal order.
|
|
1206
|
+
* Will overflow at leaf if at beginning of tree
|
|
1207
|
+
*/
|
|
1208
|
+
me.tonsky.persistent_sorted_set.prev_path = (function me$tonsky$persistent_sorted_set$prev_path(set,path){
|
|
1209
|
+
if((me.tonsky.persistent_sorted_set.path_get(path,(set.shift + (1))) > (0))){
|
|
1210
|
+
return me.tonsky.persistent_sorted_set._rpath(set.root,path,set.shift);
|
|
1211
|
+
} else {
|
|
1212
|
+
var or__5002__auto__ = me.tonsky.persistent_sorted_set._prev_path(set.root,path,set.shift);
|
|
1213
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
1214
|
+
return or__5002__auto__;
|
|
1215
|
+
} else {
|
|
1216
|
+
return me.tonsky.persistent_sorted_set.path_dec((0));
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
});
|
|
1220
|
+
|
|
1221
|
+
/**
|
|
1222
|
+
* Iterator that represents the whole set
|
|
1223
|
+
*/
|
|
1224
|
+
me.tonsky.persistent_sorted_set.btset_iter = (function me$tonsky$persistent_sorted_set$btset_iter(set){
|
|
1225
|
+
if((me.tonsky.persistent_sorted_set.node_len(set.root) > (0))){
|
|
1226
|
+
var left = (0);
|
|
1227
|
+
var rpath = me.tonsky.persistent_sorted_set._rpath(set.root,(0),set.shift);
|
|
1228
|
+
var right = me.tonsky.persistent_sorted_set.next_path(set,rpath);
|
|
1229
|
+
return (me.tonsky.persistent_sorted_set.iter.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.iter.cljs$core$IFn$_invoke$arity$3(set,left,right) : me.tonsky.persistent_sorted_set.iter.call(null,set,left,right));
|
|
1230
|
+
} else {
|
|
1231
|
+
return null;
|
|
1232
|
+
}
|
|
1233
|
+
});
|
|
1234
|
+
|
|
1235
|
+
/**
|
|
1236
|
+
* @constructor
|
|
1237
|
+
* @implements {cljs.core.IIndexed}
|
|
1238
|
+
* @implements {cljs.core.ICounted}
|
|
1239
|
+
* @implements {cljs.core.IChunk}
|
|
1240
|
+
* @implements {cljs.core.IReduce}
|
|
1241
|
+
*/
|
|
1242
|
+
me.tonsky.persistent_sorted_set.Chunk = (function (arr,off,end){
|
|
1243
|
+
this.arr = arr;
|
|
1244
|
+
this.off = off;
|
|
1245
|
+
this.end = end;
|
|
1246
|
+
this.cljs$lang$protocol_mask$partition0$ = 524306;
|
|
1247
|
+
this.cljs$lang$protocol_mask$partition1$ = 0;
|
|
1248
|
+
});
|
|
1249
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$ICounted$_count$arity$1 = (function (_){
|
|
1250
|
+
var self__ = this;
|
|
1251
|
+
var ___$1 = this;
|
|
1252
|
+
return (self__.end - self__.off);
|
|
1253
|
+
}));
|
|
1254
|
+
|
|
1255
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$IIndexed$_nth$arity$2 = (function (this$,i){
|
|
1256
|
+
var self__ = this;
|
|
1257
|
+
var this$__$1 = this;
|
|
1258
|
+
return (self__.arr[(self__.off + i)]);
|
|
1259
|
+
}));
|
|
1260
|
+
|
|
1261
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$IIndexed$_nth$arity$3 = (function (this$,i,not_found){
|
|
1262
|
+
var self__ = this;
|
|
1263
|
+
var this$__$1 = this;
|
|
1264
|
+
if((((i >= (0))) && ((i < (self__.end - self__.off))))){
|
|
1265
|
+
return (self__.arr[(self__.off + i)]);
|
|
1266
|
+
} else {
|
|
1267
|
+
return not_found;
|
|
1268
|
+
}
|
|
1269
|
+
}));
|
|
1270
|
+
|
|
1271
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$IChunk$ = cljs.core.PROTOCOL_SENTINEL);
|
|
1272
|
+
|
|
1273
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$IChunk$_drop_first$arity$1 = (function (this$){
|
|
1274
|
+
var self__ = this;
|
|
1275
|
+
var this$__$1 = this;
|
|
1276
|
+
if((self__.off === self__.end)){
|
|
1277
|
+
throw (new Error("-drop-first of empty chunk"));
|
|
1278
|
+
} else {
|
|
1279
|
+
return (new cljs.core.ArrayChunk(self__.arr,(self__.off + (1)),self__.end));
|
|
1280
|
+
}
|
|
1281
|
+
}));
|
|
1282
|
+
|
|
1283
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$IReduce$_reduce$arity$2 = (function (this$,f){
|
|
1284
|
+
var self__ = this;
|
|
1285
|
+
var this$__$1 = this;
|
|
1286
|
+
if((self__.off === self__.end)){
|
|
1287
|
+
return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));
|
|
1288
|
+
} else {
|
|
1289
|
+
return cljs.core._reduce(this$__$1.cljs$core$IChunk$_drop_first$arity$1(null),f,(self__.arr[self__.off]));
|
|
1290
|
+
}
|
|
1291
|
+
}));
|
|
1292
|
+
|
|
1293
|
+
(me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$IReduce$_reduce$arity$3 = (function (this$,f,start){
|
|
1294
|
+
var self__ = this;
|
|
1295
|
+
var this$__$1 = this;
|
|
1296
|
+
var val = start;
|
|
1297
|
+
var n = self__.off;
|
|
1298
|
+
while(true){
|
|
1299
|
+
if((n < self__.end)){
|
|
1300
|
+
var val_SINGLEQUOTE_ = (function (){var G__8317 = val;
|
|
1301
|
+
var G__8318 = (self__.arr[n]);
|
|
1302
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__8317,G__8318) : f.call(null,G__8317,G__8318));
|
|
1303
|
+
})();
|
|
1304
|
+
if(cljs.core.reduced_QMARK_(val_SINGLEQUOTE_)){
|
|
1305
|
+
return cljs.core.deref(val_SINGLEQUOTE_);
|
|
1306
|
+
} else {
|
|
1307
|
+
var G__8674 = val_SINGLEQUOTE_;
|
|
1308
|
+
var G__8675 = (n + (1));
|
|
1309
|
+
val = G__8674;
|
|
1310
|
+
n = G__8675;
|
|
1311
|
+
continue;
|
|
1312
|
+
}
|
|
1313
|
+
} else {
|
|
1314
|
+
return val;
|
|
1315
|
+
}
|
|
1316
|
+
break;
|
|
1317
|
+
}
|
|
1318
|
+
}));
|
|
1319
|
+
|
|
1320
|
+
(me.tonsky.persistent_sorted_set.Chunk.getBasis = (function (){
|
|
1321
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"arr","arr",2115492975,null),new cljs.core.Symbol(null,"off","off",-2047994980,null),new cljs.core.Symbol(null,"end","end",1372345569,null)], null);
|
|
1322
|
+
}));
|
|
1323
|
+
|
|
1324
|
+
(me.tonsky.persistent_sorted_set.Chunk.cljs$lang$type = true);
|
|
1325
|
+
|
|
1326
|
+
(me.tonsky.persistent_sorted_set.Chunk.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/Chunk");
|
|
1327
|
+
|
|
1328
|
+
(me.tonsky.persistent_sorted_set.Chunk.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
1329
|
+
return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/Chunk");
|
|
1330
|
+
}));
|
|
1331
|
+
|
|
1332
|
+
/**
|
|
1333
|
+
* Positional factory function for me.tonsky.persistent-sorted-set/Chunk.
|
|
1334
|
+
*/
|
|
1335
|
+
me.tonsky.persistent_sorted_set.__GT_Chunk = (function me$tonsky$persistent_sorted_set$__GT_Chunk(arr,off,end){
|
|
1336
|
+
return (new me.tonsky.persistent_sorted_set.Chunk(arr,off,end));
|
|
1337
|
+
});
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
/**
|
|
1341
|
+
* @interface
|
|
1342
|
+
*/
|
|
1343
|
+
me.tonsky.persistent_sorted_set.IIter = function(){};
|
|
1344
|
+
|
|
1345
|
+
var me$tonsky$persistent_sorted_set$IIter$_copy$dyn_8679 = (function (this$,left,right){
|
|
1346
|
+
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
1347
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set._copy[goog.typeOf(x__5350__auto__)]);
|
|
1348
|
+
if((!((m__5351__auto__ == null)))){
|
|
1349
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,left,right) : m__5351__auto__.call(null,this$,left,right));
|
|
1350
|
+
} else {
|
|
1351
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set._copy["_"]);
|
|
1352
|
+
if((!((m__5349__auto__ == null)))){
|
|
1353
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,left,right) : m__5349__auto__.call(null,this$,left,right));
|
|
1354
|
+
} else {
|
|
1355
|
+
throw cljs.core.missing_protocol("IIter.-copy",this$);
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
});
|
|
1359
|
+
me.tonsky.persistent_sorted_set._copy = (function me$tonsky$persistent_sorted_set$_copy(this$,left,right){
|
|
1360
|
+
if((((!((this$ == null)))) && ((!((this$.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3 == null)))))){
|
|
1361
|
+
return this$.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3(this$,left,right);
|
|
1362
|
+
} else {
|
|
1363
|
+
return me$tonsky$persistent_sorted_set$IIter$_copy$dyn_8679(this$,left,right);
|
|
1364
|
+
}
|
|
1365
|
+
});
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
/**
|
|
1369
|
+
* @interface
|
|
1370
|
+
*/
|
|
1371
|
+
me.tonsky.persistent_sorted_set.ISeek = function(){};
|
|
1372
|
+
|
|
1373
|
+
var me$tonsky$persistent_sorted_set$ISeek$_seek$dyn_8681 = (function() {
|
|
1374
|
+
var G__8682 = null;
|
|
1375
|
+
var G__8682__2 = (function (this$,key){
|
|
1376
|
+
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
1377
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set._seek[goog.typeOf(x__5350__auto__)]);
|
|
1378
|
+
if((!((m__5351__auto__ == null)))){
|
|
1379
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,key) : m__5351__auto__.call(null,this$,key));
|
|
1380
|
+
} else {
|
|
1381
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set._seek["_"]);
|
|
1382
|
+
if((!((m__5349__auto__ == null)))){
|
|
1383
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,key) : m__5349__auto__.call(null,this$,key));
|
|
1384
|
+
} else {
|
|
1385
|
+
throw cljs.core.missing_protocol("ISeek.-seek",this$);
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
});
|
|
1389
|
+
var G__8682__3 = (function (this$,key,comparator){
|
|
1390
|
+
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
1391
|
+
var m__5351__auto__ = (me.tonsky.persistent_sorted_set._seek[goog.typeOf(x__5350__auto__)]);
|
|
1392
|
+
if((!((m__5351__auto__ == null)))){
|
|
1393
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,comparator) : m__5351__auto__.call(null,this$,key,comparator));
|
|
1394
|
+
} else {
|
|
1395
|
+
var m__5349__auto__ = (me.tonsky.persistent_sorted_set._seek["_"]);
|
|
1396
|
+
if((!((m__5349__auto__ == null)))){
|
|
1397
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,comparator) : m__5349__auto__.call(null,this$,key,comparator));
|
|
1398
|
+
} else {
|
|
1399
|
+
throw cljs.core.missing_protocol("ISeek.-seek",this$);
|
|
1400
|
+
}
|
|
1401
|
+
}
|
|
1402
|
+
});
|
|
1403
|
+
G__8682 = function(this$,key,comparator){
|
|
1404
|
+
switch(arguments.length){
|
|
1405
|
+
case 2:
|
|
1406
|
+
return G__8682__2.call(this,this$,key);
|
|
1407
|
+
case 3:
|
|
1408
|
+
return G__8682__3.call(this,this$,key,comparator);
|
|
1409
|
+
}
|
|
1410
|
+
throw(new Error('Invalid arity: ' + arguments.length));
|
|
1411
|
+
};
|
|
1412
|
+
G__8682.cljs$core$IFn$_invoke$arity$2 = G__8682__2;
|
|
1413
|
+
G__8682.cljs$core$IFn$_invoke$arity$3 = G__8682__3;
|
|
1414
|
+
return G__8682;
|
|
1415
|
+
})()
|
|
1416
|
+
;
|
|
1417
|
+
me.tonsky.persistent_sorted_set._seek = (function me$tonsky$persistent_sorted_set$_seek(var_args){
|
|
1418
|
+
var G__8327 = arguments.length;
|
|
1419
|
+
switch (G__8327) {
|
|
1420
|
+
case 2:
|
|
1421
|
+
return me.tonsky.persistent_sorted_set._seek.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
1422
|
+
|
|
1423
|
+
break;
|
|
1424
|
+
case 3:
|
|
1425
|
+
return me.tonsky.persistent_sorted_set._seek.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
1426
|
+
|
|
1427
|
+
break;
|
|
1428
|
+
default:
|
|
1429
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
1430
|
+
|
|
1431
|
+
}
|
|
1432
|
+
});
|
|
1433
|
+
|
|
1434
|
+
(me.tonsky.persistent_sorted_set._seek.cljs$core$IFn$_invoke$arity$2 = (function (this$,key){
|
|
1435
|
+
if((((!((this$ == null)))) && ((!((this$.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$2 == null)))))){
|
|
1436
|
+
return this$.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$2(this$,key);
|
|
1437
|
+
} else {
|
|
1438
|
+
return me$tonsky$persistent_sorted_set$ISeek$_seek$dyn_8681(this$,key);
|
|
1439
|
+
}
|
|
1440
|
+
}));
|
|
1441
|
+
|
|
1442
|
+
(me.tonsky.persistent_sorted_set._seek.cljs$core$IFn$_invoke$arity$3 = (function (this$,key,comparator){
|
|
1443
|
+
if((((!((this$ == null)))) && ((!((this$.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$3 == null)))))){
|
|
1444
|
+
return this$.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$3(this$,key,comparator);
|
|
1445
|
+
} else {
|
|
1446
|
+
return me$tonsky$persistent_sorted_set$ISeek$_seek$dyn_8681(this$,key,comparator);
|
|
1447
|
+
}
|
|
1448
|
+
}));
|
|
1449
|
+
|
|
1450
|
+
(me.tonsky.persistent_sorted_set._seek.cljs$lang$maxFixedArity = 3);
|
|
1451
|
+
|
|
1452
|
+
|
|
1453
|
+
|
|
1454
|
+
|
|
1455
|
+
/**
|
|
1456
|
+
* @constructor
|
|
1457
|
+
* @implements {me.tonsky.persistent_sorted_set.IIter}
|
|
1458
|
+
* @implements {cljs.core.IReversible}
|
|
1459
|
+
* @implements {me.tonsky.persistent_sorted_set.ISeek}
|
|
1460
|
+
* @implements {cljs.core.IEquiv}
|
|
1461
|
+
* @implements {cljs.core.IChunkedNext}
|
|
1462
|
+
* @implements {cljs.core.ISeq}
|
|
1463
|
+
* @implements {cljs.core.INext}
|
|
1464
|
+
* @implements {cljs.core.ISeqable}
|
|
1465
|
+
* @implements {cljs.core.IPrintWithWriter}
|
|
1466
|
+
* @implements {cljs.core.IChunkedSeq}
|
|
1467
|
+
* @implements {cljs.core.ISequential}
|
|
1468
|
+
* @implements {cljs.core.IReduce}
|
|
1469
|
+
*/
|
|
1470
|
+
me.tonsky.persistent_sorted_set.Iter = (function (set,left,right,keys,idx){
|
|
1471
|
+
this.set = set;
|
|
1472
|
+
this.left = left;
|
|
1473
|
+
this.right = right;
|
|
1474
|
+
this.keys = keys;
|
|
1475
|
+
this.idx = idx;
|
|
1476
|
+
this.cljs$lang$protocol_mask$partition0$ = 2309488832;
|
|
1477
|
+
this.cljs$lang$protocol_mask$partition1$ = 1536;
|
|
1478
|
+
});
|
|
1479
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.toString = (function (){
|
|
1480
|
+
var self__ = this;
|
|
1481
|
+
var this$ = this;
|
|
1482
|
+
return cljs.core.pr_str_STAR_(this$);
|
|
1483
|
+
}));
|
|
1484
|
+
|
|
1485
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.me$tonsky$persistent_sorted_set$ISeek$ = cljs.core.PROTOCOL_SENTINEL);
|
|
1486
|
+
|
|
1487
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$2 = (function (this$,key){
|
|
1488
|
+
var self__ = this;
|
|
1489
|
+
var this$__$1 = this;
|
|
1490
|
+
return this$__$1.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$3(null,key,self__.set.comparator);
|
|
1491
|
+
}));
|
|
1492
|
+
|
|
1493
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$3 = (function (this$,key,cmp){
|
|
1494
|
+
var self__ = this;
|
|
1495
|
+
var this$__$1 = this;
|
|
1496
|
+
if((key == null)){
|
|
1497
|
+
throw (new Error("seek can't be called with a nil key!"));
|
|
1498
|
+
} else {
|
|
1499
|
+
if(cljs.core.nat_int_QMARK_((function (){var G__8340 = (self__.keys[self__.idx]);
|
|
1500
|
+
var G__8341 = key;
|
|
1501
|
+
return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8340,G__8341) : cmp.call(null,G__8340,G__8341));
|
|
1502
|
+
})())){
|
|
1503
|
+
return this$__$1;
|
|
1504
|
+
} else {
|
|
1505
|
+
var temp__5808__auto__ = (me.tonsky.persistent_sorted_set._seek_STAR_.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set._seek_STAR_.cljs$core$IFn$_invoke$arity$3(self__.set,key,cmp) : me.tonsky.persistent_sorted_set._seek_STAR_.call(null,self__.set,key,cmp));
|
|
1506
|
+
if((temp__5808__auto__ == null)){
|
|
1507
|
+
return null;
|
|
1508
|
+
} else {
|
|
1509
|
+
var left_SINGLEQUOTE_ = temp__5808__auto__;
|
|
1510
|
+
return (new me.tonsky.persistent_sorted_set.Iter(self__.set,left_SINGLEQUOTE_,self__.right,me.tonsky.persistent_sorted_set.keys_for(self__.set,left_SINGLEQUOTE_),me.tonsky.persistent_sorted_set.path_get(left_SINGLEQUOTE_,(0))));
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
}));
|
|
1516
|
+
|
|
1517
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this$,writer,opts){
|
|
1518
|
+
var self__ = this;
|
|
1519
|
+
var this$__$1 = this;
|
|
1520
|
+
return cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,"("," ",")",opts,cljs.core.seq(this$__$1));
|
|
1521
|
+
}));
|
|
1522
|
+
|
|
1523
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$INext$_next$arity$1 = (function (this$){
|
|
1524
|
+
var self__ = this;
|
|
1525
|
+
var this$__$1 = this;
|
|
1526
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1527
|
+
if(((self__.idx + (1)) < self__.keys.length)){
|
|
1528
|
+
var left_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.path_inc(self__.left);
|
|
1529
|
+
if(me.tonsky.persistent_sorted_set.path_lt(left_SINGLEQUOTE_,self__.right)){
|
|
1530
|
+
return (new me.tonsky.persistent_sorted_set.Iter(self__.set,left_SINGLEQUOTE_,self__.right,self__.keys,(self__.idx + (1))));
|
|
1531
|
+
} else {
|
|
1532
|
+
return null;
|
|
1533
|
+
}
|
|
1534
|
+
} else {
|
|
1535
|
+
var left_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.next_path(self__.set,self__.left);
|
|
1536
|
+
if(me.tonsky.persistent_sorted_set.path_lt(left_SINGLEQUOTE_,self__.right)){
|
|
1537
|
+
return this$__$1.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3(null,left_SINGLEQUOTE_,self__.right);
|
|
1538
|
+
} else {
|
|
1539
|
+
return null;
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
} else {
|
|
1543
|
+
return null;
|
|
1544
|
+
}
|
|
1545
|
+
}));
|
|
1546
|
+
|
|
1547
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IReversible$_rseq$arity$1 = (function (this$){
|
|
1548
|
+
var self__ = this;
|
|
1549
|
+
var this$__$1 = this;
|
|
1550
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1551
|
+
var G__8343 = self__.set;
|
|
1552
|
+
var G__8344 = me.tonsky.persistent_sorted_set.prev_path(self__.set,self__.left);
|
|
1553
|
+
var G__8345 = me.tonsky.persistent_sorted_set.prev_path(self__.set,self__.right);
|
|
1554
|
+
return (me.tonsky.persistent_sorted_set.riter.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.riter.cljs$core$IFn$_invoke$arity$3(G__8343,G__8344,G__8345) : me.tonsky.persistent_sorted_set.riter.call(null,G__8343,G__8344,G__8345));
|
|
1555
|
+
} else {
|
|
1556
|
+
return null;
|
|
1557
|
+
}
|
|
1558
|
+
}));
|
|
1559
|
+
|
|
1560
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this$,other){
|
|
1561
|
+
var self__ = this;
|
|
1562
|
+
var this$__$1 = this;
|
|
1563
|
+
return cljs.core.equiv_sequential(this$__$1,other);
|
|
1564
|
+
}));
|
|
1565
|
+
|
|
1566
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IReduce$_reduce$arity$2 = (function (this$,f){
|
|
1567
|
+
var self__ = this;
|
|
1568
|
+
var this$__$1 = this;
|
|
1569
|
+
if((self__.keys == null)){
|
|
1570
|
+
return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));
|
|
1571
|
+
} else {
|
|
1572
|
+
var first = this$__$1.cljs$core$ISeq$_first$arity$1(null);
|
|
1573
|
+
var temp__5806__auto__ = this$__$1.cljs$core$INext$_next$arity$1(null);
|
|
1574
|
+
if((temp__5806__auto__ == null)){
|
|
1575
|
+
return first;
|
|
1576
|
+
} else {
|
|
1577
|
+
var next = temp__5806__auto__;
|
|
1578
|
+
return cljs.core._reduce(next,f,first);
|
|
1579
|
+
}
|
|
1580
|
+
}
|
|
1581
|
+
}));
|
|
1582
|
+
|
|
1583
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IReduce$_reduce$arity$3 = (function (this$,f,start){
|
|
1584
|
+
var self__ = this;
|
|
1585
|
+
var this$__$1 = this;
|
|
1586
|
+
var left__$1 = self__.left;
|
|
1587
|
+
var keys__$1 = self__.keys;
|
|
1588
|
+
var idx__$1 = self__.idx;
|
|
1589
|
+
var acc = start;
|
|
1590
|
+
while(true){
|
|
1591
|
+
if((keys__$1 == null)){
|
|
1592
|
+
return acc;
|
|
1593
|
+
} else {
|
|
1594
|
+
var new_acc = (function (){var G__8347 = acc;
|
|
1595
|
+
var G__8348 = (keys__$1[idx__$1]);
|
|
1596
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__8347,G__8348) : f.call(null,G__8347,G__8348));
|
|
1597
|
+
})();
|
|
1598
|
+
if(cljs.core.reduced_QMARK_(new_acc)){
|
|
1599
|
+
return cljs.core.deref(new_acc);
|
|
1600
|
+
} else {
|
|
1601
|
+
if(((idx__$1 + (1)) < keys__$1.length)){
|
|
1602
|
+
var left_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.path_inc(left__$1);
|
|
1603
|
+
if(me.tonsky.persistent_sorted_set.path_lt(left_SINGLEQUOTE_,self__.right)){
|
|
1604
|
+
var G__8709 = left_SINGLEQUOTE_;
|
|
1605
|
+
var G__8710 = keys__$1;
|
|
1606
|
+
var G__8711 = (idx__$1 + (1));
|
|
1607
|
+
var G__8712 = new_acc;
|
|
1608
|
+
left__$1 = G__8709;
|
|
1609
|
+
keys__$1 = G__8710;
|
|
1610
|
+
idx__$1 = G__8711;
|
|
1611
|
+
acc = G__8712;
|
|
1612
|
+
continue;
|
|
1613
|
+
} else {
|
|
1614
|
+
return new_acc;
|
|
1615
|
+
}
|
|
1616
|
+
} else {
|
|
1617
|
+
var left_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.next_path(self__.set,left__$1);
|
|
1618
|
+
if(me.tonsky.persistent_sorted_set.path_lt(left_SINGLEQUOTE_,self__.right)){
|
|
1619
|
+
var G__8713 = left_SINGLEQUOTE_;
|
|
1620
|
+
var G__8714 = me.tonsky.persistent_sorted_set.keys_for(self__.set,left_SINGLEQUOTE_);
|
|
1621
|
+
var G__8715 = me.tonsky.persistent_sorted_set.path_get(left_SINGLEQUOTE_,(0));
|
|
1622
|
+
var G__8716 = new_acc;
|
|
1623
|
+
left__$1 = G__8713;
|
|
1624
|
+
keys__$1 = G__8714;
|
|
1625
|
+
idx__$1 = G__8715;
|
|
1626
|
+
acc = G__8716;
|
|
1627
|
+
continue;
|
|
1628
|
+
} else {
|
|
1629
|
+
return new_acc;
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1635
|
+
break;
|
|
1636
|
+
}
|
|
1637
|
+
}));
|
|
1638
|
+
|
|
1639
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$ISeq$_first$arity$1 = (function (this$){
|
|
1640
|
+
var self__ = this;
|
|
1641
|
+
var this$__$1 = this;
|
|
1642
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1643
|
+
return (self__.keys[self__.idx]);
|
|
1644
|
+
} else {
|
|
1645
|
+
return null;
|
|
1646
|
+
}
|
|
1647
|
+
}));
|
|
1648
|
+
|
|
1649
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$ISeq$_rest$arity$1 = (function (this$){
|
|
1650
|
+
var self__ = this;
|
|
1651
|
+
var this$__$1 = this;
|
|
1652
|
+
var or__5002__auto__ = this$__$1.cljs$core$INext$_next$arity$1(null);
|
|
1653
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
1654
|
+
return or__5002__auto__;
|
|
1655
|
+
} else {
|
|
1656
|
+
return cljs.core.List.EMPTY;
|
|
1657
|
+
}
|
|
1658
|
+
}));
|
|
1659
|
+
|
|
1660
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this$){
|
|
1661
|
+
var self__ = this;
|
|
1662
|
+
var this$__$1 = this;
|
|
1663
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1664
|
+
return this$__$1;
|
|
1665
|
+
} else {
|
|
1666
|
+
return null;
|
|
1667
|
+
}
|
|
1668
|
+
}));
|
|
1669
|
+
|
|
1670
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = (function (this$){
|
|
1671
|
+
var self__ = this;
|
|
1672
|
+
var this$__$1 = this;
|
|
1673
|
+
var end_idx = ((me.tonsky.persistent_sorted_set.path_same_leaf(self__.left,self__.right))?me.tonsky.persistent_sorted_set.path_get(self__.right,(0)):self__.keys.length);
|
|
1674
|
+
return (new me.tonsky.persistent_sorted_set.Chunk(self__.keys,self__.idx,end_idx));
|
|
1675
|
+
}));
|
|
1676
|
+
|
|
1677
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = (function (this$){
|
|
1678
|
+
var self__ = this;
|
|
1679
|
+
var this$__$1 = this;
|
|
1680
|
+
var or__5002__auto__ = this$__$1.cljs$core$IChunkedNext$_chunked_next$arity$1(null);
|
|
1681
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
1682
|
+
return or__5002__auto__;
|
|
1683
|
+
} else {
|
|
1684
|
+
return cljs.core.List.EMPTY;
|
|
1685
|
+
}
|
|
1686
|
+
}));
|
|
1687
|
+
|
|
1688
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.me$tonsky$persistent_sorted_set$IIter$ = cljs.core.PROTOCOL_SENTINEL);
|
|
1689
|
+
|
|
1690
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3 = (function (_,l,r){
|
|
1691
|
+
var self__ = this;
|
|
1692
|
+
var ___$1 = this;
|
|
1693
|
+
return (new me.tonsky.persistent_sorted_set.Iter(self__.set,l,r,me.tonsky.persistent_sorted_set.keys_for(self__.set,l),me.tonsky.persistent_sorted_set.path_get(l,(0))));
|
|
1694
|
+
}));
|
|
1695
|
+
|
|
1696
|
+
(me.tonsky.persistent_sorted_set.Iter.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 = (function (this$){
|
|
1697
|
+
var self__ = this;
|
|
1698
|
+
var this$__$1 = this;
|
|
1699
|
+
var last = me.tonsky.persistent_sorted_set.path_set(self__.left,(0),(self__.keys.length - (1)));
|
|
1700
|
+
var left_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.next_path(self__.set,last);
|
|
1701
|
+
if(me.tonsky.persistent_sorted_set.path_lt(left_SINGLEQUOTE_,self__.right)){
|
|
1702
|
+
return this$__$1.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3(null,left_SINGLEQUOTE_,self__.right);
|
|
1703
|
+
} else {
|
|
1704
|
+
return null;
|
|
1705
|
+
}
|
|
1706
|
+
}));
|
|
1707
|
+
|
|
1708
|
+
(me.tonsky.persistent_sorted_set.Iter.getBasis = (function (){
|
|
1709
|
+
return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"set","set",1945134081,null),new cljs.core.Symbol(null,"left","left",1241415590,null),new cljs.core.Symbol(null,"right","right",1187949694,null),new cljs.core.Symbol(null,"keys","keys",-1586012071,null),new cljs.core.Symbol(null,"idx","idx",-1600747296,null)], null);
|
|
1710
|
+
}));
|
|
1711
|
+
|
|
1712
|
+
(me.tonsky.persistent_sorted_set.Iter.cljs$lang$type = true);
|
|
1713
|
+
|
|
1714
|
+
(me.tonsky.persistent_sorted_set.Iter.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/Iter");
|
|
1715
|
+
|
|
1716
|
+
(me.tonsky.persistent_sorted_set.Iter.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
1717
|
+
return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/Iter");
|
|
1718
|
+
}));
|
|
1719
|
+
|
|
1720
|
+
/**
|
|
1721
|
+
* Positional factory function for me.tonsky.persistent-sorted-set/Iter.
|
|
1722
|
+
*/
|
|
1723
|
+
me.tonsky.persistent_sorted_set.__GT_Iter = (function me$tonsky$persistent_sorted_set$__GT_Iter(set,left,right,keys,idx){
|
|
1724
|
+
return (new me.tonsky.persistent_sorted_set.Iter(set,left,right,keys,idx));
|
|
1725
|
+
});
|
|
1726
|
+
|
|
1727
|
+
me.tonsky.persistent_sorted_set.iter = (function me$tonsky$persistent_sorted_set$iter(set,left,right){
|
|
1728
|
+
return (new me.tonsky.persistent_sorted_set.Iter(set,left,right,me.tonsky.persistent_sorted_set.keys_for(set,left),me.tonsky.persistent_sorted_set.path_get(left,(0))));
|
|
1729
|
+
});
|
|
1730
|
+
|
|
1731
|
+
/**
|
|
1732
|
+
* @constructor
|
|
1733
|
+
* @implements {me.tonsky.persistent_sorted_set.IIter}
|
|
1734
|
+
* @implements {cljs.core.IReversible}
|
|
1735
|
+
* @implements {me.tonsky.persistent_sorted_set.ISeek}
|
|
1736
|
+
* @implements {cljs.core.IEquiv}
|
|
1737
|
+
* @implements {cljs.core.ISeq}
|
|
1738
|
+
* @implements {cljs.core.INext}
|
|
1739
|
+
* @implements {cljs.core.ISeqable}
|
|
1740
|
+
* @implements {cljs.core.IPrintWithWriter}
|
|
1741
|
+
* @implements {cljs.core.ISequential}
|
|
1742
|
+
*/
|
|
1743
|
+
me.tonsky.persistent_sorted_set.ReverseIter = (function (set,left,right,keys,idx){
|
|
1744
|
+
this.set = set;
|
|
1745
|
+
this.left = left;
|
|
1746
|
+
this.right = right;
|
|
1747
|
+
this.keys = keys;
|
|
1748
|
+
this.idx = idx;
|
|
1749
|
+
this.cljs$lang$protocol_mask$partition0$ = 2308964544;
|
|
1750
|
+
this.cljs$lang$protocol_mask$partition1$ = 0;
|
|
1751
|
+
});
|
|
1752
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.toString = (function (){
|
|
1753
|
+
var self__ = this;
|
|
1754
|
+
var this$ = this;
|
|
1755
|
+
return cljs.core.pr_str_STAR_(this$);
|
|
1756
|
+
}));
|
|
1757
|
+
|
|
1758
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.me$tonsky$persistent_sorted_set$ISeek$ = cljs.core.PROTOCOL_SENTINEL);
|
|
1759
|
+
|
|
1760
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$2 = (function (this$,key){
|
|
1761
|
+
var self__ = this;
|
|
1762
|
+
var this$__$1 = this;
|
|
1763
|
+
return this$__$1.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$3(null,key,self__.set.comparator);
|
|
1764
|
+
}));
|
|
1765
|
+
|
|
1766
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.me$tonsky$persistent_sorted_set$ISeek$_seek$arity$3 = (function (this$,key,cmp){
|
|
1767
|
+
var self__ = this;
|
|
1768
|
+
var this$__$1 = this;
|
|
1769
|
+
if((key == null)){
|
|
1770
|
+
throw (new Error("seek can't be called with a nil key!"));
|
|
1771
|
+
} else {
|
|
1772
|
+
if(cljs.core.nat_int_QMARK_((function (){var G__8354 = key;
|
|
1773
|
+
var G__8355 = (self__.keys[self__.idx]);
|
|
1774
|
+
return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8354,G__8355) : cmp.call(null,G__8354,G__8355));
|
|
1775
|
+
})())){
|
|
1776
|
+
return this$__$1;
|
|
1777
|
+
} else {
|
|
1778
|
+
var right_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.prev_path(self__.set,(me.tonsky.persistent_sorted_set._rseek_STAR_.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set._rseek_STAR_.cljs$core$IFn$_invoke$arity$3(self__.set,key,cmp) : me.tonsky.persistent_sorted_set._rseek_STAR_.call(null,self__.set,key,cmp)));
|
|
1779
|
+
if(((cljs.core.nat_int_QMARK_(right_SINGLEQUOTE_)) && (((me.tonsky.persistent_sorted_set.path_lte(self__.left,right_SINGLEQUOTE_)) && (me.tonsky.persistent_sorted_set.path_lt(right_SINGLEQUOTE_,self__.right)))))){
|
|
1780
|
+
return (new me.tonsky.persistent_sorted_set.ReverseIter(self__.set,self__.left,right_SINGLEQUOTE_,me.tonsky.persistent_sorted_set.keys_for(self__.set,right_SINGLEQUOTE_),me.tonsky.persistent_sorted_set.path_get(right_SINGLEQUOTE_,(0))));
|
|
1781
|
+
} else {
|
|
1782
|
+
return null;
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1787
|
+
}));
|
|
1788
|
+
|
|
1789
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this$,writer,opts){
|
|
1790
|
+
var self__ = this;
|
|
1791
|
+
var this$__$1 = this;
|
|
1792
|
+
return cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,"("," ",")",opts,cljs.core.seq(this$__$1));
|
|
1793
|
+
}));
|
|
1794
|
+
|
|
1795
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$INext$_next$arity$1 = (function (this$){
|
|
1796
|
+
var self__ = this;
|
|
1797
|
+
var this$__$1 = this;
|
|
1798
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1799
|
+
if((self__.idx > (0))){
|
|
1800
|
+
var right_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.path_dec(self__.right);
|
|
1801
|
+
if(me.tonsky.persistent_sorted_set.path_lt(self__.left,right_SINGLEQUOTE_)){
|
|
1802
|
+
return (new me.tonsky.persistent_sorted_set.ReverseIter(self__.set,self__.left,right_SINGLEQUOTE_,self__.keys,(self__.idx - (1))));
|
|
1803
|
+
} else {
|
|
1804
|
+
return null;
|
|
1805
|
+
}
|
|
1806
|
+
} else {
|
|
1807
|
+
var right_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.prev_path(self__.set,self__.right);
|
|
1808
|
+
if(me.tonsky.persistent_sorted_set.path_lt(self__.left,right_SINGLEQUOTE_)){
|
|
1809
|
+
return this$__$1.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3(null,self__.left,right_SINGLEQUOTE_);
|
|
1810
|
+
} else {
|
|
1811
|
+
return null;
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
} else {
|
|
1815
|
+
return null;
|
|
1816
|
+
}
|
|
1817
|
+
}));
|
|
1818
|
+
|
|
1819
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$IReversible$_rseq$arity$1 = (function (this$){
|
|
1820
|
+
var self__ = this;
|
|
1821
|
+
var this$__$1 = this;
|
|
1822
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1823
|
+
return me.tonsky.persistent_sorted_set.iter(self__.set,me.tonsky.persistent_sorted_set.next_path(self__.set,self__.left),me.tonsky.persistent_sorted_set.next_path(self__.set,self__.right));
|
|
1824
|
+
} else {
|
|
1825
|
+
return null;
|
|
1826
|
+
}
|
|
1827
|
+
}));
|
|
1828
|
+
|
|
1829
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this$,other){
|
|
1830
|
+
var self__ = this;
|
|
1831
|
+
var this$__$1 = this;
|
|
1832
|
+
return cljs.core.equiv_sequential(this$__$1,other);
|
|
1833
|
+
}));
|
|
1834
|
+
|
|
1835
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$ISeq$_first$arity$1 = (function (this$){
|
|
1836
|
+
var self__ = this;
|
|
1837
|
+
var this$__$1 = this;
|
|
1838
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1839
|
+
return (self__.keys[self__.idx]);
|
|
1840
|
+
} else {
|
|
1841
|
+
return null;
|
|
1842
|
+
}
|
|
1843
|
+
}));
|
|
1844
|
+
|
|
1845
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$ISeq$_rest$arity$1 = (function (this$){
|
|
1846
|
+
var self__ = this;
|
|
1847
|
+
var this$__$1 = this;
|
|
1848
|
+
var or__5002__auto__ = this$__$1.cljs$core$INext$_next$arity$1(null);
|
|
1849
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
1850
|
+
return or__5002__auto__;
|
|
1851
|
+
} else {
|
|
1852
|
+
return cljs.core.List.EMPTY;
|
|
1853
|
+
}
|
|
1854
|
+
}));
|
|
1855
|
+
|
|
1856
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this$){
|
|
1857
|
+
var self__ = this;
|
|
1858
|
+
var this$__$1 = this;
|
|
1859
|
+
if(cljs.core.truth_(self__.keys)){
|
|
1860
|
+
return this$__$1;
|
|
1861
|
+
} else {
|
|
1862
|
+
return null;
|
|
1863
|
+
}
|
|
1864
|
+
}));
|
|
1865
|
+
|
|
1866
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.me$tonsky$persistent_sorted_set$IIter$ = cljs.core.PROTOCOL_SENTINEL);
|
|
1867
|
+
|
|
1868
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.prototype.me$tonsky$persistent_sorted_set$IIter$_copy$arity$3 = (function (_,l,r){
|
|
1869
|
+
var self__ = this;
|
|
1870
|
+
var ___$1 = this;
|
|
1871
|
+
return (new me.tonsky.persistent_sorted_set.ReverseIter(self__.set,l,r,me.tonsky.persistent_sorted_set.keys_for(self__.set,r),me.tonsky.persistent_sorted_set.path_get(r,(0))));
|
|
1872
|
+
}));
|
|
1873
|
+
|
|
1874
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.getBasis = (function (){
|
|
1875
|
+
return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"set","set",1945134081,null),new cljs.core.Symbol(null,"left","left",1241415590,null),new cljs.core.Symbol(null,"right","right",1187949694,null),new cljs.core.Symbol(null,"keys","keys",-1586012071,null),new cljs.core.Symbol(null,"idx","idx",-1600747296,null)], null);
|
|
1876
|
+
}));
|
|
1877
|
+
|
|
1878
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.cljs$lang$type = true);
|
|
1879
|
+
|
|
1880
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/ReverseIter");
|
|
1881
|
+
|
|
1882
|
+
(me.tonsky.persistent_sorted_set.ReverseIter.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
1883
|
+
return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/ReverseIter");
|
|
1884
|
+
}));
|
|
1885
|
+
|
|
1886
|
+
/**
|
|
1887
|
+
* Positional factory function for me.tonsky.persistent-sorted-set/ReverseIter.
|
|
1888
|
+
*/
|
|
1889
|
+
me.tonsky.persistent_sorted_set.__GT_ReverseIter = (function me$tonsky$persistent_sorted_set$__GT_ReverseIter(set,left,right,keys,idx){
|
|
1890
|
+
return (new me.tonsky.persistent_sorted_set.ReverseIter(set,left,right,keys,idx));
|
|
1891
|
+
});
|
|
1892
|
+
|
|
1893
|
+
me.tonsky.persistent_sorted_set.riter = (function me$tonsky$persistent_sorted_set$riter(set,left,right){
|
|
1894
|
+
return (new me.tonsky.persistent_sorted_set.ReverseIter(set,left,right,me.tonsky.persistent_sorted_set.keys_for(set,right),me.tonsky.persistent_sorted_set.path_get(right,(0))));
|
|
1895
|
+
});
|
|
1896
|
+
me.tonsky.persistent_sorted_set._distance = (function me$tonsky$persistent_sorted_set$_distance(node,left,right,level){
|
|
1897
|
+
var idx_l = me.tonsky.persistent_sorted_set.path_get(left,level);
|
|
1898
|
+
var idx_r = me.tonsky.persistent_sorted_set.path_get(right,level);
|
|
1899
|
+
if((level > (0))){
|
|
1900
|
+
if((idx_l === idx_r)){
|
|
1901
|
+
var G__8363 = (node.pointers[idx_l]);
|
|
1902
|
+
var G__8364 = left;
|
|
1903
|
+
var G__8365 = right;
|
|
1904
|
+
var G__8366 = (level - (1));
|
|
1905
|
+
return (me.tonsky.persistent_sorted_set._distance.cljs$core$IFn$_invoke$arity$4 ? me.tonsky.persistent_sorted_set._distance.cljs$core$IFn$_invoke$arity$4(G__8363,G__8364,G__8365,G__8366) : me.tonsky.persistent_sorted_set._distance.call(null,G__8363,G__8364,G__8365,G__8366));
|
|
1906
|
+
} else {
|
|
1907
|
+
var level__$1 = level;
|
|
1908
|
+
var res = (idx_r - idx_l);
|
|
1909
|
+
while(true){
|
|
1910
|
+
if(((0) === level__$1)){
|
|
1911
|
+
return res;
|
|
1912
|
+
} else {
|
|
1913
|
+
var G__8764 = (level__$1 - (1));
|
|
1914
|
+
var G__8765 = (res * me.tonsky.persistent_sorted_set.avg_len);
|
|
1915
|
+
level__$1 = G__8764;
|
|
1916
|
+
res = G__8765;
|
|
1917
|
+
continue;
|
|
1918
|
+
}
|
|
1919
|
+
break;
|
|
1920
|
+
}
|
|
1921
|
+
}
|
|
1922
|
+
} else {
|
|
1923
|
+
return (idx_r - idx_l);
|
|
1924
|
+
}
|
|
1925
|
+
});
|
|
1926
|
+
me.tonsky.persistent_sorted_set.distance = (function me$tonsky$persistent_sorted_set$distance(set,path_l,path_r){
|
|
1927
|
+
if(me.tonsky.persistent_sorted_set.path_eq(path_l,path_r)){
|
|
1928
|
+
return (0);
|
|
1929
|
+
} else {
|
|
1930
|
+
if(me.tonsky.persistent_sorted_set.path_eq(me.tonsky.persistent_sorted_set.path_inc(path_l),path_r)){
|
|
1931
|
+
return (1);
|
|
1932
|
+
} else {
|
|
1933
|
+
if(me.tonsky.persistent_sorted_set.path_eq(me.tonsky.persistent_sorted_set.next_path(set,path_l),path_r)){
|
|
1934
|
+
return (1);
|
|
1935
|
+
} else {
|
|
1936
|
+
return me.tonsky.persistent_sorted_set._distance(set.root,path_l,path_r,set.shift);
|
|
1937
|
+
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
}
|
|
1941
|
+
});
|
|
1942
|
+
me.tonsky.persistent_sorted_set.est_count = (function me$tonsky$persistent_sorted_set$est_count(iter){
|
|
1943
|
+
return me.tonsky.persistent_sorted_set.distance(iter.set,iter.left,iter.right);
|
|
1944
|
+
});
|
|
1945
|
+
/**
|
|
1946
|
+
* Returns path to first element >= key,
|
|
1947
|
+
* or -1 if all elements in a set < key
|
|
1948
|
+
*/
|
|
1949
|
+
me.tonsky.persistent_sorted_set._seek_STAR_ = (function me$tonsky$persistent_sorted_set$_seek_STAR_(set,key,comparator){
|
|
1950
|
+
if((key == null)){
|
|
1951
|
+
return (0);
|
|
1952
|
+
} else {
|
|
1953
|
+
var node = set.root;
|
|
1954
|
+
var path = (0);
|
|
1955
|
+
var level = set.shift;
|
|
1956
|
+
while(true){
|
|
1957
|
+
var keys_l = me.tonsky.persistent_sorted_set.node_len(node);
|
|
1958
|
+
if(((0) === level)){
|
|
1959
|
+
var keys = node.keys;
|
|
1960
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_l(comparator,keys,(keys_l - (1)),key);
|
|
1961
|
+
if((keys_l === idx)){
|
|
1962
|
+
return null;
|
|
1963
|
+
} else {
|
|
1964
|
+
return me.tonsky.persistent_sorted_set.path_set(path,(0),idx);
|
|
1965
|
+
}
|
|
1966
|
+
} else {
|
|
1967
|
+
var keys = node.keys;
|
|
1968
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_l(comparator,keys,(keys_l - (2)),key);
|
|
1969
|
+
var G__8773 = (node.pointers[idx]);
|
|
1970
|
+
var G__8774 = me.tonsky.persistent_sorted_set.path_set(path,level,idx);
|
|
1971
|
+
var G__8775 = (level - (1));
|
|
1972
|
+
node = G__8773;
|
|
1973
|
+
path = G__8774;
|
|
1974
|
+
level = G__8775;
|
|
1975
|
+
continue;
|
|
1976
|
+
}
|
|
1977
|
+
break;
|
|
1978
|
+
}
|
|
1979
|
+
}
|
|
1980
|
+
});
|
|
1981
|
+
/**
|
|
1982
|
+
* Returns path to the first element that is > key.
|
|
1983
|
+
* If all elements in a set are <= key, returns `(-rpath set) + 1`.
|
|
1984
|
+
* It’s a virtual path that is bigger than any path in a tree
|
|
1985
|
+
*/
|
|
1986
|
+
me.tonsky.persistent_sorted_set._rseek_STAR_ = (function me$tonsky$persistent_sorted_set$_rseek_STAR_(set,key,comparator){
|
|
1987
|
+
if((key == null)){
|
|
1988
|
+
return me.tonsky.persistent_sorted_set.path_inc(me.tonsky.persistent_sorted_set._rpath(set.root,(0),set.shift));
|
|
1989
|
+
} else {
|
|
1990
|
+
var node = set.root;
|
|
1991
|
+
var path = (0);
|
|
1992
|
+
var level = set.shift;
|
|
1993
|
+
while(true){
|
|
1994
|
+
var keys_l = me.tonsky.persistent_sorted_set.node_len(node);
|
|
1995
|
+
if(((0) === level)){
|
|
1996
|
+
var keys = node.keys;
|
|
1997
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_r(comparator,keys,(keys_l - (1)),key);
|
|
1998
|
+
var res = me.tonsky.persistent_sorted_set.path_set(path,(0),idx);
|
|
1999
|
+
return res;
|
|
2000
|
+
} else {
|
|
2001
|
+
var keys = node.keys;
|
|
2002
|
+
var idx = me.tonsky.persistent_sorted_set.binary_search_r(comparator,keys,(keys_l - (2)),key);
|
|
2003
|
+
var res = me.tonsky.persistent_sorted_set.path_set(path,level,idx);
|
|
2004
|
+
var G__8780 = (node.pointers[idx]);
|
|
2005
|
+
var G__8781 = res;
|
|
2006
|
+
var G__8782 = (level - (1));
|
|
2007
|
+
node = G__8780;
|
|
2008
|
+
path = G__8781;
|
|
2009
|
+
level = G__8782;
|
|
2010
|
+
continue;
|
|
2011
|
+
}
|
|
2012
|
+
break;
|
|
2013
|
+
}
|
|
2014
|
+
}
|
|
2015
|
+
});
|
|
2016
|
+
me.tonsky.persistent_sorted_set._slice = (function me$tonsky$persistent_sorted_set$_slice(set,key_from,key_to,comparator){
|
|
2017
|
+
var temp__5808__auto__ = me.tonsky.persistent_sorted_set._seek_STAR_(set,key_from,comparator);
|
|
2018
|
+
if((temp__5808__auto__ == null)){
|
|
2019
|
+
return null;
|
|
2020
|
+
} else {
|
|
2021
|
+
var path = temp__5808__auto__;
|
|
2022
|
+
var till_path = me.tonsky.persistent_sorted_set._rseek_STAR_(set,key_to,comparator);
|
|
2023
|
+
if(me.tonsky.persistent_sorted_set.path_lt(path,till_path)){
|
|
2024
|
+
return (new me.tonsky.persistent_sorted_set.Iter(set,path,till_path,me.tonsky.persistent_sorted_set.keys_for(set,path),me.tonsky.persistent_sorted_set.path_get(path,(0))));
|
|
2025
|
+
} else {
|
|
2026
|
+
return null;
|
|
2027
|
+
}
|
|
2028
|
+
}
|
|
2029
|
+
});
|
|
2030
|
+
me.tonsky.persistent_sorted_set.arr_map_inplace = (function me$tonsky$persistent_sorted_set$arr_map_inplace(f,arr){
|
|
2031
|
+
var len = arr.length;
|
|
2032
|
+
var i_8785 = (0);
|
|
2033
|
+
while(true){
|
|
2034
|
+
if((i_8785 < len)){
|
|
2035
|
+
(arr[i_8785] = (function (){var G__8367 = (arr[i_8785]);
|
|
2036
|
+
return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__8367) : f.call(null,G__8367));
|
|
2037
|
+
})());
|
|
2038
|
+
|
|
2039
|
+
var G__8787 = (i_8785 + (1));
|
|
2040
|
+
i_8785 = G__8787;
|
|
2041
|
+
continue;
|
|
2042
|
+
} else {
|
|
2043
|
+
}
|
|
2044
|
+
break;
|
|
2045
|
+
}
|
|
2046
|
+
|
|
2047
|
+
return arr;
|
|
2048
|
+
});
|
|
2049
|
+
/**
|
|
2050
|
+
* Splits `arr` into arrays of size between min-len and max-len,
|
|
2051
|
+
* trying to stick to (min+max)/2
|
|
2052
|
+
*/
|
|
2053
|
+
me.tonsky.persistent_sorted_set.arr_partition_approx = (function me$tonsky$persistent_sorted_set$arr_partition_approx(min_len,max_len,arr){
|
|
2054
|
+
var chunk_len = me.tonsky.persistent_sorted_set.avg_len;
|
|
2055
|
+
var len = arr.length;
|
|
2056
|
+
var acc = cljs.core.transient$(cljs.core.PersistentVector.EMPTY);
|
|
2057
|
+
if((len > (0))){
|
|
2058
|
+
var pos_8790 = (0);
|
|
2059
|
+
while(true){
|
|
2060
|
+
var rest_8791 = (len - pos_8790);
|
|
2061
|
+
if((rest_8791 <= max_len)){
|
|
2062
|
+
cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,arr.slice(pos_8790));
|
|
2063
|
+
} else {
|
|
2064
|
+
if((rest_8791 >= (chunk_len + min_len))){
|
|
2065
|
+
cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,arr.slice(pos_8790,(pos_8790 + chunk_len)));
|
|
2066
|
+
|
|
2067
|
+
var G__8795 = (pos_8790 + chunk_len);
|
|
2068
|
+
pos_8790 = G__8795;
|
|
2069
|
+
continue;
|
|
2070
|
+
} else {
|
|
2071
|
+
var piece_len_8796 = (rest_8791 >>> (1));
|
|
2072
|
+
cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,arr.slice(pos_8790,(pos_8790 + piece_len_8796)));
|
|
2073
|
+
|
|
2074
|
+
var G__8797 = (pos_8790 + piece_len_8796);
|
|
2075
|
+
pos_8790 = G__8797;
|
|
2076
|
+
continue;
|
|
2077
|
+
|
|
2078
|
+
}
|
|
2079
|
+
}
|
|
2080
|
+
break;
|
|
2081
|
+
}
|
|
2082
|
+
} else {
|
|
2083
|
+
}
|
|
2084
|
+
|
|
2085
|
+
return cljs.core.to_array(cljs.core.persistent_BANG_(acc));
|
|
2086
|
+
});
|
|
2087
|
+
me.tonsky.persistent_sorted_set.sorted_arr_distinct_QMARK_ = (function me$tonsky$persistent_sorted_set$sorted_arr_distinct_QMARK_(arr,cmp){
|
|
2088
|
+
var al = arr.length;
|
|
2089
|
+
if((al <= (1))){
|
|
2090
|
+
return true;
|
|
2091
|
+
} else {
|
|
2092
|
+
var i = (1);
|
|
2093
|
+
var p = (arr[(0)]);
|
|
2094
|
+
while(true){
|
|
2095
|
+
if((i >= al)){
|
|
2096
|
+
return true;
|
|
2097
|
+
} else {
|
|
2098
|
+
var e = (arr[i]);
|
|
2099
|
+
if(((0) === (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(e,p) : cmp.call(null,e,p)))){
|
|
2100
|
+
return false;
|
|
2101
|
+
} else {
|
|
2102
|
+
var G__8801 = (i + (1));
|
|
2103
|
+
var G__8802 = e;
|
|
2104
|
+
i = G__8801;
|
|
2105
|
+
p = G__8802;
|
|
2106
|
+
continue;
|
|
2107
|
+
}
|
|
2108
|
+
}
|
|
2109
|
+
break;
|
|
2110
|
+
}
|
|
2111
|
+
}
|
|
2112
|
+
});
|
|
2113
|
+
/**
|
|
2114
|
+
* Filter out repetitive values in a sorted array.
|
|
2115
|
+
* Optimized for no-duplicates case
|
|
2116
|
+
*/
|
|
2117
|
+
me.tonsky.persistent_sorted_set.sorted_arr_distinct = (function me$tonsky$persistent_sorted_set$sorted_arr_distinct(arr,cmp){
|
|
2118
|
+
if(me.tonsky.persistent_sorted_set.sorted_arr_distinct_QMARK_(arr,cmp)){
|
|
2119
|
+
return arr;
|
|
2120
|
+
} else {
|
|
2121
|
+
var al = arr.length;
|
|
2122
|
+
var acc = cljs.core.transient$(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(arr[(0)])], null));
|
|
2123
|
+
var i = (1);
|
|
2124
|
+
var p = (arr[(0)]);
|
|
2125
|
+
while(true){
|
|
2126
|
+
if((i >= al)){
|
|
2127
|
+
return cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.persistent_BANG_(acc));
|
|
2128
|
+
} else {
|
|
2129
|
+
var e = (arr[i]);
|
|
2130
|
+
if(((0) === (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(e,p) : cmp.call(null,e,p)))){
|
|
2131
|
+
var G__8806 = acc;
|
|
2132
|
+
var G__8807 = (i + (1));
|
|
2133
|
+
var G__8808 = e;
|
|
2134
|
+
acc = G__8806;
|
|
2135
|
+
i = G__8807;
|
|
2136
|
+
p = G__8808;
|
|
2137
|
+
continue;
|
|
2138
|
+
} else {
|
|
2139
|
+
var G__8809 = cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,e);
|
|
2140
|
+
var G__8810 = (i + (1));
|
|
2141
|
+
var G__8811 = e;
|
|
2142
|
+
acc = G__8809;
|
|
2143
|
+
i = G__8810;
|
|
2144
|
+
p = G__8811;
|
|
2145
|
+
continue;
|
|
2146
|
+
}
|
|
2147
|
+
}
|
|
2148
|
+
break;
|
|
2149
|
+
}
|
|
2150
|
+
}
|
|
2151
|
+
});
|
|
2152
|
+
/**
|
|
2153
|
+
* Analogue to [[clojure.core/conj]] with comparator that overrides the one stored in set.
|
|
2154
|
+
*/
|
|
2155
|
+
me.tonsky.persistent_sorted_set.conj = (function me$tonsky$persistent_sorted_set$conj(set,key,cmp){
|
|
2156
|
+
var roots = me.tonsky.persistent_sorted_set.node_conj(set.root,cmp,key);
|
|
2157
|
+
if((roots == null)){
|
|
2158
|
+
return set;
|
|
2159
|
+
} else {
|
|
2160
|
+
if((roots.length === (1))){
|
|
2161
|
+
return me.tonsky.persistent_sorted_set.alter_btset(set,(roots[(0)]),set.shift,(set.cnt + (1)));
|
|
2162
|
+
} else {
|
|
2163
|
+
return me.tonsky.persistent_sorted_set.alter_btset(set,(new me.tonsky.persistent_sorted_set.Node(me.tonsky.persistent_sorted_set.arrays.amap(me.tonsky.persistent_sorted_set.node_lim_key,roots),roots)),(set.shift + (1)),(set.cnt + (1)));
|
|
2164
|
+
|
|
2165
|
+
}
|
|
2166
|
+
}
|
|
2167
|
+
});
|
|
2168
|
+
/**
|
|
2169
|
+
* Analogue to [[clojure.core/disj]] with comparator that overrides the one stored in set.
|
|
2170
|
+
*/
|
|
2171
|
+
me.tonsky.persistent_sorted_set.disj = (function me$tonsky$persistent_sorted_set$disj(set,key,cmp){
|
|
2172
|
+
var new_roots = me.tonsky.persistent_sorted_set.node_disj(set.root,cmp,key,true,null,null);
|
|
2173
|
+
if((new_roots == null)){
|
|
2174
|
+
return set;
|
|
2175
|
+
} else {
|
|
2176
|
+
var new_root = (new_roots[(0)]);
|
|
2177
|
+
if((((new_root instanceof me.tonsky.persistent_sorted_set.Node)) && (((1) === new_root.pointers.length)))){
|
|
2178
|
+
return me.tonsky.persistent_sorted_set.alter_btset(set,(new_root.pointers[(0)]),(set.shift - (1)),(set.cnt - (1)));
|
|
2179
|
+
} else {
|
|
2180
|
+
return me.tonsky.persistent_sorted_set.alter_btset(set,new_root,set.shift,(set.cnt - (1)));
|
|
2181
|
+
}
|
|
2182
|
+
}
|
|
2183
|
+
});
|
|
2184
|
+
/**
|
|
2185
|
+
* An iterator for part of the set with provided boundaries.
|
|
2186
|
+
* `(slice set from to)` returns iterator for all Xs where from <= X <= to.
|
|
2187
|
+
* Optionally pass in comparator that will override the one that set uses. Supports efficient [[clojure.core/rseq]].
|
|
2188
|
+
*/
|
|
2189
|
+
me.tonsky.persistent_sorted_set.slice = (function me$tonsky$persistent_sorted_set$slice(var_args){
|
|
2190
|
+
var G__8386 = arguments.length;
|
|
2191
|
+
switch (G__8386) {
|
|
2192
|
+
case 3:
|
|
2193
|
+
return me.tonsky.persistent_sorted_set.slice.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
2194
|
+
|
|
2195
|
+
break;
|
|
2196
|
+
case 4:
|
|
2197
|
+
return me.tonsky.persistent_sorted_set.slice.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
|
|
2198
|
+
|
|
2199
|
+
break;
|
|
2200
|
+
default:
|
|
2201
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
2202
|
+
|
|
2203
|
+
}
|
|
2204
|
+
});
|
|
2205
|
+
|
|
2206
|
+
(me.tonsky.persistent_sorted_set.slice.cljs$core$IFn$_invoke$arity$3 = (function (set,key_from,key_to){
|
|
2207
|
+
return me.tonsky.persistent_sorted_set._slice(set,key_from,key_to,set.comparator);
|
|
2208
|
+
}));
|
|
2209
|
+
|
|
2210
|
+
(me.tonsky.persistent_sorted_set.slice.cljs$core$IFn$_invoke$arity$4 = (function (set,key_from,key_to,comparator){
|
|
2211
|
+
return me.tonsky.persistent_sorted_set._slice(set,key_from,key_to,comparator);
|
|
2212
|
+
}));
|
|
2213
|
+
|
|
2214
|
+
(me.tonsky.persistent_sorted_set.slice.cljs$lang$maxFixedArity = 4);
|
|
2215
|
+
|
|
2216
|
+
/**
|
|
2217
|
+
* A reverse iterator for part of the set with provided boundaries.
|
|
2218
|
+
* `(rslice set from to)` returns backwards iterator for all Xs where from <= X <= to.
|
|
2219
|
+
* Optionally pass in comparator that will override the one that set uses. Supports efficient [[clojure.core/rseq]].
|
|
2220
|
+
*/
|
|
2221
|
+
me.tonsky.persistent_sorted_set.rslice = (function me$tonsky$persistent_sorted_set$rslice(var_args){
|
|
2222
|
+
var G__8399 = arguments.length;
|
|
2223
|
+
switch (G__8399) {
|
|
2224
|
+
case 2:
|
|
2225
|
+
return me.tonsky.persistent_sorted_set.rslice.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
2226
|
+
|
|
2227
|
+
break;
|
|
2228
|
+
case 3:
|
|
2229
|
+
return me.tonsky.persistent_sorted_set.rslice.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
2230
|
+
|
|
2231
|
+
break;
|
|
2232
|
+
case 4:
|
|
2233
|
+
return me.tonsky.persistent_sorted_set.rslice.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
|
|
2234
|
+
|
|
2235
|
+
break;
|
|
2236
|
+
default:
|
|
2237
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
2238
|
+
|
|
2239
|
+
}
|
|
2240
|
+
});
|
|
2241
|
+
|
|
2242
|
+
(me.tonsky.persistent_sorted_set.rslice.cljs$core$IFn$_invoke$arity$2 = (function (set,key){
|
|
2243
|
+
var G__8402 = me.tonsky.persistent_sorted_set._slice(set,key,key,set.comparator);
|
|
2244
|
+
if((G__8402 == null)){
|
|
2245
|
+
return null;
|
|
2246
|
+
} else {
|
|
2247
|
+
return cljs.core.rseq(G__8402);
|
|
2248
|
+
}
|
|
2249
|
+
}));
|
|
2250
|
+
|
|
2251
|
+
(me.tonsky.persistent_sorted_set.rslice.cljs$core$IFn$_invoke$arity$3 = (function (set,key_from,key_to){
|
|
2252
|
+
var G__8403 = me.tonsky.persistent_sorted_set._slice(set,key_to,key_from,set.comparator);
|
|
2253
|
+
if((G__8403 == null)){
|
|
2254
|
+
return null;
|
|
2255
|
+
} else {
|
|
2256
|
+
return cljs.core.rseq(G__8403);
|
|
2257
|
+
}
|
|
2258
|
+
}));
|
|
2259
|
+
|
|
2260
|
+
(me.tonsky.persistent_sorted_set.rslice.cljs$core$IFn$_invoke$arity$4 = (function (set,key_from,key_to,comparator){
|
|
2261
|
+
var G__8404 = me.tonsky.persistent_sorted_set._slice(set,key_to,key_from,comparator);
|
|
2262
|
+
if((G__8404 == null)){
|
|
2263
|
+
return null;
|
|
2264
|
+
} else {
|
|
2265
|
+
return cljs.core.rseq(G__8404);
|
|
2266
|
+
}
|
|
2267
|
+
}));
|
|
2268
|
+
|
|
2269
|
+
(me.tonsky.persistent_sorted_set.rslice.cljs$lang$maxFixedArity = 4);
|
|
2270
|
+
|
|
2271
|
+
/**
|
|
2272
|
+
* An efficient way to seek to a specific key in a seq (either returned by [[clojure.core.seq]] or a slice.)
|
|
2273
|
+
* `(seek (seq set) to)` returns iterator for all Xs where to <= X.
|
|
2274
|
+
* Optionally pass in comparator that will override the one that set uses.
|
|
2275
|
+
*/
|
|
2276
|
+
me.tonsky.persistent_sorted_set.seek = (function me$tonsky$persistent_sorted_set$seek(var_args){
|
|
2277
|
+
var G__8407 = arguments.length;
|
|
2278
|
+
switch (G__8407) {
|
|
2279
|
+
case 2:
|
|
2280
|
+
return me.tonsky.persistent_sorted_set.seek.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
2281
|
+
|
|
2282
|
+
break;
|
|
2283
|
+
case 3:
|
|
2284
|
+
return me.tonsky.persistent_sorted_set.seek.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
2285
|
+
|
|
2286
|
+
break;
|
|
2287
|
+
default:
|
|
2288
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
2289
|
+
|
|
2290
|
+
}
|
|
2291
|
+
});
|
|
2292
|
+
|
|
2293
|
+
(me.tonsky.persistent_sorted_set.seek.cljs$core$IFn$_invoke$arity$2 = (function (seq,to){
|
|
2294
|
+
return me.tonsky.persistent_sorted_set._seek(seq,to);
|
|
2295
|
+
}));
|
|
2296
|
+
|
|
2297
|
+
(me.tonsky.persistent_sorted_set.seek.cljs$core$IFn$_invoke$arity$3 = (function (seq,to,cmp){
|
|
2298
|
+
return me.tonsky.persistent_sorted_set._seek(seq,to,cmp);
|
|
2299
|
+
}));
|
|
2300
|
+
|
|
2301
|
+
(me.tonsky.persistent_sorted_set.seek.cljs$lang$maxFixedArity = 3);
|
|
2302
|
+
|
|
2303
|
+
/**
|
|
2304
|
+
* Fast path to create a set if you already have a sorted array of elements on your hands.
|
|
2305
|
+
*/
|
|
2306
|
+
me.tonsky.persistent_sorted_set.from_sorted_array = (function me$tonsky$persistent_sorted_set$from_sorted_array(var_args){
|
|
2307
|
+
var G__8413 = arguments.length;
|
|
2308
|
+
switch (G__8413) {
|
|
2309
|
+
case 2:
|
|
2310
|
+
return me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
2311
|
+
|
|
2312
|
+
break;
|
|
2313
|
+
case 3:
|
|
2314
|
+
return me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
2315
|
+
|
|
2316
|
+
break;
|
|
2317
|
+
case 4:
|
|
2318
|
+
return me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
|
|
2319
|
+
|
|
2320
|
+
break;
|
|
2321
|
+
default:
|
|
2322
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
2323
|
+
|
|
2324
|
+
}
|
|
2325
|
+
});
|
|
2326
|
+
|
|
2327
|
+
(me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$2 = (function (cmp,arr){
|
|
2328
|
+
return me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$4(cmp,arr,arr.length,cljs.core.PersistentArrayMap.EMPTY);
|
|
2329
|
+
}));
|
|
2330
|
+
|
|
2331
|
+
(me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$3 = (function (cmp,arr,_len){
|
|
2332
|
+
return me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$4(cmp,arr,_len,cljs.core.PersistentArrayMap.EMPTY);
|
|
2333
|
+
}));
|
|
2334
|
+
|
|
2335
|
+
(me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$4 = (function (cmp,arr,_len,_opts){
|
|
2336
|
+
var leaves = me.tonsky.persistent_sorted_set.arr_map_inplace((function (p1__8410_SHARP_){
|
|
2337
|
+
return (new me.tonsky.persistent_sorted_set.Leaf(p1__8410_SHARP_));
|
|
2338
|
+
}),me.tonsky.persistent_sorted_set.arr_partition_approx(me.tonsky.persistent_sorted_set.min_len,me.tonsky.persistent_sorted_set.max_len,arr));
|
|
2339
|
+
var current_level = leaves;
|
|
2340
|
+
var shift = (0);
|
|
2341
|
+
while(true){
|
|
2342
|
+
var G__8422 = cljs.core.count(current_level);
|
|
2343
|
+
switch (G__8422) {
|
|
2344
|
+
case (0):
|
|
2345
|
+
return (new me.tonsky.persistent_sorted_set.BTSet((new me.tonsky.persistent_sorted_set.Leaf([])),(0),(0),cmp,null,null));
|
|
2346
|
+
|
|
2347
|
+
break;
|
|
2348
|
+
case (1):
|
|
2349
|
+
return (new me.tonsky.persistent_sorted_set.BTSet(cljs.core.first(current_level),shift,arr.length,cmp,null,null));
|
|
2350
|
+
|
|
2351
|
+
break;
|
|
2352
|
+
default:
|
|
2353
|
+
var G__8828 = me.tonsky.persistent_sorted_set.arr_map_inplace(((function (current_level,shift,G__8422,leaves){
|
|
2354
|
+
return (function (p1__8411_SHARP_){
|
|
2355
|
+
return (new me.tonsky.persistent_sorted_set.Node(me.tonsky.persistent_sorted_set.arrays.amap(me.tonsky.persistent_sorted_set.node_lim_key,p1__8411_SHARP_),p1__8411_SHARP_));
|
|
2356
|
+
});})(current_level,shift,G__8422,leaves))
|
|
2357
|
+
,me.tonsky.persistent_sorted_set.arr_partition_approx(me.tonsky.persistent_sorted_set.min_len,me.tonsky.persistent_sorted_set.max_len,current_level));
|
|
2358
|
+
var G__8829 = (shift + (1));
|
|
2359
|
+
current_level = G__8828;
|
|
2360
|
+
shift = G__8829;
|
|
2361
|
+
continue;
|
|
2362
|
+
|
|
2363
|
+
}
|
|
2364
|
+
break;
|
|
2365
|
+
}
|
|
2366
|
+
}));
|
|
2367
|
+
|
|
2368
|
+
(me.tonsky.persistent_sorted_set.from_sorted_array.cljs$lang$maxFixedArity = 4);
|
|
2369
|
+
|
|
2370
|
+
/**
|
|
2371
|
+
* Create a set with custom comparator and a collection of keys. Useful when you don’t want to call [[clojure.core/apply]] on [[sorted-set-by]].
|
|
2372
|
+
*/
|
|
2373
|
+
me.tonsky.persistent_sorted_set.from_sequential = (function me$tonsky$persistent_sorted_set$from_sequential(cmp,seq){
|
|
2374
|
+
var arr = me.tonsky.persistent_sorted_set.sorted_arr_distinct(me.tonsky.persistent_sorted_set.arrays.asort(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(seq),cmp),cmp);
|
|
2375
|
+
return me.tonsky.persistent_sorted_set.from_sorted_array.cljs$core$IFn$_invoke$arity$2(cmp,arr);
|
|
2376
|
+
});
|
|
2377
|
+
/**
|
|
2378
|
+
* Create a set with custom comparator, metadata and settings
|
|
2379
|
+
*/
|
|
2380
|
+
me.tonsky.persistent_sorted_set.sorted_set_STAR_ = (function me$tonsky$persistent_sorted_set$sorted_set_STAR_(opts){
|
|
2381
|
+
return (new me.tonsky.persistent_sorted_set.BTSet((new me.tonsky.persistent_sorted_set.Leaf([])),(0),(0),(function (){var or__5002__auto__ = new cljs.core.Keyword(null,"cmp","cmp",575646375).cljs$core$IFn$_invoke$arity$1(opts);
|
|
2382
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
2383
|
+
return or__5002__auto__;
|
|
2384
|
+
} else {
|
|
2385
|
+
return cljs.core.compare;
|
|
2386
|
+
}
|
|
2387
|
+
})(),new cljs.core.Keyword(null,"meta","meta",1499536964).cljs$core$IFn$_invoke$arity$1(opts),null));
|
|
2388
|
+
});
|
|
2389
|
+
me.tonsky.persistent_sorted_set.sorted_set_by = (function me$tonsky$persistent_sorted_set$sorted_set_by(var_args){
|
|
2390
|
+
var G__8437 = arguments.length;
|
|
2391
|
+
switch (G__8437) {
|
|
2392
|
+
case 1:
|
|
2393
|
+
return me.tonsky.persistent_sorted_set.sorted_set_by.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
2394
|
+
|
|
2395
|
+
break;
|
|
2396
|
+
default:
|
|
2397
|
+
var args_arr__5751__auto__ = [];
|
|
2398
|
+
var len__5726__auto___8840 = arguments.length;
|
|
2399
|
+
var i__5727__auto___8841 = (0);
|
|
2400
|
+
while(true){
|
|
2401
|
+
if((i__5727__auto___8841 < len__5726__auto___8840)){
|
|
2402
|
+
args_arr__5751__auto__.push((arguments[i__5727__auto___8841]));
|
|
2403
|
+
|
|
2404
|
+
var G__8843 = (i__5727__auto___8841 + (1));
|
|
2405
|
+
i__5727__auto___8841 = G__8843;
|
|
2406
|
+
continue;
|
|
2407
|
+
} else {
|
|
2408
|
+
}
|
|
2409
|
+
break;
|
|
2410
|
+
}
|
|
2411
|
+
|
|
2412
|
+
var argseq__5752__auto__ = ((((1) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);
|
|
2413
|
+
return me.tonsky.persistent_sorted_set.sorted_set_by.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);
|
|
2414
|
+
|
|
2415
|
+
}
|
|
2416
|
+
});
|
|
2417
|
+
|
|
2418
|
+
(me.tonsky.persistent_sorted_set.sorted_set_by.cljs$core$IFn$_invoke$arity$1 = (function (cmp){
|
|
2419
|
+
return (new me.tonsky.persistent_sorted_set.BTSet((new me.tonsky.persistent_sorted_set.Leaf([])),(0),(0),cmp,null,null));
|
|
2420
|
+
}));
|
|
2421
|
+
|
|
2422
|
+
(me.tonsky.persistent_sorted_set.sorted_set_by.cljs$core$IFn$_invoke$arity$variadic = (function (cmp,keys){
|
|
2423
|
+
return me.tonsky.persistent_sorted_set.from_sequential(cmp,keys);
|
|
2424
|
+
}));
|
|
2425
|
+
|
|
2426
|
+
/** @this {Function} */
|
|
2427
|
+
(me.tonsky.persistent_sorted_set.sorted_set_by.cljs$lang$applyTo = (function (seq8433){
|
|
2428
|
+
var G__8434 = cljs.core.first(seq8433);
|
|
2429
|
+
var seq8433__$1 = cljs.core.next(seq8433);
|
|
2430
|
+
var self__5711__auto__ = this;
|
|
2431
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__8434,seq8433__$1);
|
|
2432
|
+
}));
|
|
2433
|
+
|
|
2434
|
+
(me.tonsky.persistent_sorted_set.sorted_set_by.cljs$lang$maxFixedArity = (1));
|
|
2435
|
+
|
|
2436
|
+
me.tonsky.persistent_sorted_set.sorted_set = (function me$tonsky$persistent_sorted_set$sorted_set(var_args){
|
|
2437
|
+
var G__8442 = arguments.length;
|
|
2438
|
+
switch (G__8442) {
|
|
2439
|
+
case 0:
|
|
2440
|
+
return me.tonsky.persistent_sorted_set.sorted_set.cljs$core$IFn$_invoke$arity$0();
|
|
2441
|
+
|
|
2442
|
+
break;
|
|
2443
|
+
default:
|
|
2444
|
+
var args_arr__5751__auto__ = [];
|
|
2445
|
+
var len__5726__auto___8845 = arguments.length;
|
|
2446
|
+
var i__5727__auto___8846 = (0);
|
|
2447
|
+
while(true){
|
|
2448
|
+
if((i__5727__auto___8846 < len__5726__auto___8845)){
|
|
2449
|
+
args_arr__5751__auto__.push((arguments[i__5727__auto___8846]));
|
|
2450
|
+
|
|
2451
|
+
var G__8848 = (i__5727__auto___8846 + (1));
|
|
2452
|
+
i__5727__auto___8846 = G__8848;
|
|
2453
|
+
continue;
|
|
2454
|
+
} else {
|
|
2455
|
+
}
|
|
2456
|
+
break;
|
|
2457
|
+
}
|
|
2458
|
+
|
|
2459
|
+
var argseq__5752__auto__ = ((((0) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((0)),(0),null)):null);
|
|
2460
|
+
return me.tonsky.persistent_sorted_set.sorted_set.cljs$core$IFn$_invoke$arity$variadic(argseq__5752__auto__);
|
|
2461
|
+
|
|
2462
|
+
}
|
|
2463
|
+
});
|
|
2464
|
+
|
|
2465
|
+
(me.tonsky.persistent_sorted_set.sorted_set.cljs$core$IFn$_invoke$arity$0 = (function (){
|
|
2466
|
+
return me.tonsky.persistent_sorted_set.sorted_set_by.cljs$core$IFn$_invoke$arity$1(cljs.core.compare);
|
|
2467
|
+
}));
|
|
2468
|
+
|
|
2469
|
+
(me.tonsky.persistent_sorted_set.sorted_set.cljs$core$IFn$_invoke$arity$variadic = (function (keys){
|
|
2470
|
+
return me.tonsky.persistent_sorted_set.from_sequential(cljs.core.compare,keys);
|
|
2471
|
+
}));
|
|
2472
|
+
|
|
2473
|
+
/** @this {Function} */
|
|
2474
|
+
(me.tonsky.persistent_sorted_set.sorted_set.cljs$lang$applyTo = (function (seq8441){
|
|
2475
|
+
var self__5712__auto__ = this;
|
|
2476
|
+
return self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq8441));
|
|
2477
|
+
}));
|
|
2478
|
+
|
|
2479
|
+
(me.tonsky.persistent_sorted_set.sorted_set.cljs$lang$maxFixedArity = (0));
|
|
2480
|
+
|
|
2481
|
+
me.tonsky.persistent_sorted_set.settings = (function me$tonsky$persistent_sorted_set$settings(set){
|
|
2482
|
+
return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"branching-factor","branching-factor",1903198601),me.tonsky.persistent_sorted_set.max_len,new cljs.core.Keyword(null,"ref-type","ref-type",-1367328851),new cljs.core.Keyword(null,"strong","strong",269529000)], null);
|
|
2483
|
+
});
|
|
2484
|
+
|
|
2485
|
+
//# sourceMappingURL=me.tonsky.persistent_sorted_set.js.map
|