@anysoftinc/anydb-sdk 0.3.0 → 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 +13 -0
- 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 +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +59 -0
- 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.js +2 -2
- 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.map +1 -1
- package/dist/nextauth-adapter.js +8 -11
- package/package.json +5 -4
|
@@ -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
|