1use std::collections::HashMap;
2
3use num_derive::FromPrimitive;
4
5pub struct Filenames {
6 pub node_dictionary_blocks: &'static str,
7 pub node_dictionary_offsets: &'static str,
8
9 pub predicate_dictionary_blocks: &'static str,
10 pub predicate_dictionary_offsets: &'static str,
11
12 pub value_dictionary_types_present: &'static str,
13 pub value_dictionary_type_offsets: &'static str,
14 pub value_dictionary_blocks: &'static str,
15 pub value_dictionary_offsets: &'static str,
16
17 pub node_value_idmap_bits: &'static str,
18 pub node_value_idmap_bit_index_blocks: &'static str,
19 pub node_value_idmap_bit_index_sblocks: &'static str,
20
21 pub predicate_idmap_bits: &'static str,
22 pub predicate_idmap_bit_index_blocks: &'static str,
23 pub predicate_idmap_bit_index_sblocks: &'static str,
24
25 pub base_subjects: &'static str,
26 pub base_objects: &'static str,
27
28 pub base_s_p_adjacency_list_nums: &'static str,
29 pub base_s_p_adjacency_list_bits: &'static str,
30 pub base_s_p_adjacency_list_bit_index_blocks: &'static str,
31 pub base_s_p_adjacency_list_bit_index_sblocks: &'static str,
32
33 pub base_sp_o_adjacency_list_nums: &'static str,
34 pub base_sp_o_adjacency_list_bits: &'static str,
35 pub base_sp_o_adjacency_list_bit_index_blocks: &'static str,
36 pub base_sp_o_adjacency_list_bit_index_sblocks: &'static str,
37
38 pub base_o_ps_adjacency_list_nums: &'static str,
39 pub base_o_ps_adjacency_list_bits: &'static str,
40 pub base_o_ps_adjacency_list_bit_index_blocks: &'static str,
41 pub base_o_ps_adjacency_list_bit_index_sblocks: &'static str,
42
43 pub pos_subjects: &'static str,
44 pub pos_objects: &'static str,
45
46 pub pos_s_p_adjacency_list_nums: &'static str,
47 pub pos_s_p_adjacency_list_bits: &'static str,
48 pub pos_s_p_adjacency_list_bit_index_blocks: &'static str,
49 pub pos_s_p_adjacency_list_bit_index_sblocks: &'static str,
50
51 pub pos_sp_o_adjacency_list_nums: &'static str,
52 pub pos_sp_o_adjacency_list_bits: &'static str,
53 pub pos_sp_o_adjacency_list_bit_index_blocks: &'static str,
54 pub pos_sp_o_adjacency_list_bit_index_sblocks: &'static str,
55
56 pub pos_o_ps_adjacency_list_nums: &'static str,
57 pub pos_o_ps_adjacency_list_bits: &'static str,
58 pub pos_o_ps_adjacency_list_bit_index_blocks: &'static str,
59 pub pos_o_ps_adjacency_list_bit_index_sblocks: &'static str,
60
61 pub neg_subjects: &'static str,
62 pub neg_objects: &'static str,
63
64 pub neg_s_p_adjacency_list_nums: &'static str,
65 pub neg_s_p_adjacency_list_bits: &'static str,
66 pub neg_s_p_adjacency_list_bit_index_blocks: &'static str,
67 pub neg_s_p_adjacency_list_bit_index_sblocks: &'static str,
68
69 pub neg_sp_o_adjacency_list_nums: &'static str,
70 pub neg_sp_o_adjacency_list_bits: &'static str,
71 pub neg_sp_o_adjacency_list_bit_index_blocks: &'static str,
72 pub neg_sp_o_adjacency_list_bit_index_sblocks: &'static str,
73
74 pub neg_o_ps_adjacency_list_nums: &'static str,
75 pub neg_o_ps_adjacency_list_bits: &'static str,
76 pub neg_o_ps_adjacency_list_bit_index_blocks: &'static str,
77 pub neg_o_ps_adjacency_list_bit_index_sblocks: &'static str,
78
79 pub base_predicate_wavelet_tree_bits: &'static str,
80 pub base_predicate_wavelet_tree_bit_index_blocks: &'static str,
81 pub base_predicate_wavelet_tree_bit_index_sblocks: &'static str,
82
83 pub pos_predicate_wavelet_tree_bits: &'static str,
84 pub pos_predicate_wavelet_tree_bit_index_blocks: &'static str,
85 pub pos_predicate_wavelet_tree_bit_index_sblocks: &'static str,
86
87 pub neg_predicate_wavelet_tree_bits: &'static str,
88 pub neg_predicate_wavelet_tree_bit_index_blocks: &'static str,
89 pub neg_predicate_wavelet_tree_bit_index_sblocks: &'static str,
90
91 pub parent: &'static str,
92 pub rollup: &'static str,
93}
94
95#[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Debug, FromPrimitive)]
96pub enum LayerFileEnum {
97 NodeDictionaryBlocks = 0,
98 NodeDictionaryOffsets,
99 PredicateDictionaryBlocks,
100 PredicateDictionaryOffsets,
101 ValueDictionaryTypesPresent,
102 ValueDictionaryTypeOffsets,
103 ValueDictionaryBlocks,
104 ValueDictionaryOffsets,
105
106 NodeValueIdMapBits,
107 NodeValueIdMapBitIndexBlocks,
108 NodeValueIdMapBitIndexSBlocks,
109
110 PredicateIdMapBits,
111 PredicateIdMapBitIndexBlocks,
112 PredicateIdMapBitIndexSBlocks,
113
114 PosSubjects,
115 PosObjects,
116 NegSubjects,
117 NegObjects,
118
119 PosSPAdjacencyListNums,
120 PosSPAdjacencyListBits,
121 PosSPAdjacencyListBitIndexBlocks,
122 PosSPAdjacencyListBitIndexSBlocks,
123
124 PosSpOAdjacencyListNums,
125 PosSpOAdjacencyListBits,
126 PosSpOAdjacencyListBitIndexBlocks,
127 PosSpOAdjacencyListBitIndexSBlocks,
128
129 PosOPsAdjacencyListNums,
130 PosOPsAdjacencyListBits,
131 PosOPsAdjacencyListBitIndexBlocks,
132 PosOPsAdjacencyListBitIndexSBlocks,
133
134 PosPredicateWaveletTreeBits,
135 PosPredicateWaveletTreeBitIndexBlocks,
136 PosPredicateWaveletTreeBitIndexSBlocks,
137
138 NegSPAdjacencyListNums,
139 NegSPAdjacencyListBits,
140 NegSPAdjacencyListBitIndexBlocks,
141 NegSPAdjacencyListBitIndexSBlocks,
142
143 NegSpOAdjacencyListNums,
144 NegSpOAdjacencyListBits,
145 NegSpOAdjacencyListBitIndexBlocks,
146 NegSpOAdjacencyListBitIndexSBlocks,
147
148 NegOPsAdjacencyListNums,
149 NegOPsAdjacencyListBits,
150 NegOPsAdjacencyListBitIndexBlocks,
151 NegOPsAdjacencyListBitIndexSBlocks,
152
153 NegPredicateWaveletTreeBits,
154 NegPredicateWaveletTreeBitIndexBlocks,
155 NegPredicateWaveletTreeBitIndexSBlocks,
156
157 Parent,
158 Rollup,
159}
160
161pub const FILENAMES: Filenames = Filenames {
162 node_dictionary_blocks: "node_dictionary_blocks.tfc",
163 node_dictionary_offsets: "node_dictionary_offsets.logarray",
164
165 predicate_dictionary_blocks: "predicate_dictionary_blocks.tfc",
166 predicate_dictionary_offsets: "predicate_dictionary_offsets.logarray",
167
168 value_dictionary_types_present: "value_dictionary_types.logarray",
169 value_dictionary_type_offsets: "value_dictionary_type_offsets.logarray",
170 value_dictionary_blocks: "value_dictionary_blocks.tfc",
171 value_dictionary_offsets: "value_dictionary_offsets.logarray",
172
173 node_value_idmap_bits: "node_value_idmap_bits.bitarray",
174 node_value_idmap_bit_index_blocks: "node_value_idmap_bit_index_blocks.bitarray",
175 node_value_idmap_bit_index_sblocks: "node_value_idmap_bit_index_sblocks.bitarray",
176
177 predicate_idmap_bits: "predicate_idmap_bits.bitarray",
178 predicate_idmap_bit_index_blocks: "predicate_idmap_bit_index_blocks.bitarray",
179 predicate_idmap_bit_index_sblocks: "predicate_idmap_bit_index_sblocks.bitarray",
180
181 base_subjects: "base_subjects.logarray",
182 base_objects: "base_objects.logarray",
183
184 base_s_p_adjacency_list_nums: "base_s_p_adjacency_list_nums.logarray",
185 base_s_p_adjacency_list_bits: "base_s_p_adjacency_list_bits.bitarray",
186 base_s_p_adjacency_list_bit_index_blocks: "base_s_p_adjacency_list_bit_index_blocks.logarray",
187 base_s_p_adjacency_list_bit_index_sblocks: "base_s_p_adjacency_list_bit_index_sblocks.logarray",
188
189 base_sp_o_adjacency_list_nums: "base_sp_o_adjacency_list_nums.logarray",
190 base_sp_o_adjacency_list_bits: "base_sp_o_adjacency_list_bits.bitarray",
191 base_sp_o_adjacency_list_bit_index_blocks: "base_sp_o_adjacency_list_bit_index_blocks.logarray",
192 base_sp_o_adjacency_list_bit_index_sblocks:
193 "base_sp_o_adjacency_list_bit_index_sblocks.logarray",
194
195 base_o_ps_adjacency_list_nums: "base_o_ps_adjacency_list_nums.logarray",
196 base_o_ps_adjacency_list_bits: "base_o_ps_adjacency_list_bits.bitarray",
197 base_o_ps_adjacency_list_bit_index_blocks: "base_o_ps_adjacency_list_bit_index_blocks.logarray",
198 base_o_ps_adjacency_list_bit_index_sblocks:
199 "base_o_ps_adjacency_list_bit_index_sblocks.logarray",
200
201 pos_subjects: "child_pos_subjects.logarray",
202 pos_objects: "child_pos_objects.logarray",
203
204 pos_s_p_adjacency_list_nums: "pos_s_p_adjacency_list_nums.logarray",
205 pos_s_p_adjacency_list_bits: "pos_s_p_adjacency_list_bits.bitarray",
206 pos_s_p_adjacency_list_bit_index_blocks: "pos_s_p_adjacency_list_bit_index_blocks.logarray",
207 pos_s_p_adjacency_list_bit_index_sblocks: "pos_s_p_adjacency_list_bit_index_sblocks.logarray",
208
209 pos_sp_o_adjacency_list_nums: "pos_sp_o_adjacency_list_nums.logarray",
210 pos_sp_o_adjacency_list_bits: "pos_sp_o_adjacency_list_bits.bitarray",
211 pos_sp_o_adjacency_list_bit_index_blocks: "pos_sp_o_adjacency_list_bit_index_blocks.logarray",
212 pos_sp_o_adjacency_list_bit_index_sblocks: "pos_sp_o_adjacency_list_bit_index_sblocks.logarray",
213
214 pos_o_ps_adjacency_list_nums: "pos_o_ps_adjacency_list_nums.logarray",
215 pos_o_ps_adjacency_list_bits: "pos_o_ps_adjacency_list_bits.bitarray",
216 pos_o_ps_adjacency_list_bit_index_blocks: "pos_o_ps_adjacency_list_bit_index_blocks.logarray",
217 pos_o_ps_adjacency_list_bit_index_sblocks: "pos_o_ps_adjacency_list_bit_index_sblocks.logarray",
218
219 neg_subjects: "child_neg_subjects.logarray",
220 neg_objects: "child_neg_objects.logarray",
221
222 neg_s_p_adjacency_list_nums: "neg_s_p_adjacency_list_nums.logarray",
223 neg_s_p_adjacency_list_bits: "neg_s_p_adjacency_list_bits.bitarray",
224 neg_s_p_adjacency_list_bit_index_blocks: "neg_s_p_adjacency_list_bit_index_blocks.logarray",
225 neg_s_p_adjacency_list_bit_index_sblocks: "neg_s_p_adjacency_list_bit_index_sblocks.logarray",
226
227 neg_sp_o_adjacency_list_nums: "neg_sp_o_adjacency_list_nums.logarray",
228 neg_sp_o_adjacency_list_bits: "neg_sp_o_adjacency_list_bits.bitarray",
229 neg_sp_o_adjacency_list_bit_index_blocks: "neg_sp_o_adjacency_list_bit_index_blocks.logarray",
230 neg_sp_o_adjacency_list_bit_index_sblocks: "neg_sp_o_adjacency_list_bit_index_sblocks.logarray",
231
232 neg_o_ps_adjacency_list_nums: "neg_o_ps_adjacency_list_nums.logarray",
233 neg_o_ps_adjacency_list_bits: "neg_o_ps_adjacency_list_bits.bitarray",
234 neg_o_ps_adjacency_list_bit_index_blocks: "neg_o_ps_adjacency_list_bit_index_blocks.logarray",
235 neg_o_ps_adjacency_list_bit_index_sblocks: "neg_o_ps_adjacency_list_bit_index_sblocks.logarray",
236
237 base_predicate_wavelet_tree_bits: "base_predicate_wavelet_tree_bits.bitarray",
238 base_predicate_wavelet_tree_bit_index_blocks:
239 "base_predicate_wavelet_tree_bit_index_blocks.logarray",
240 base_predicate_wavelet_tree_bit_index_sblocks:
241 "base_predicate_wavelet_tree_bit_index_sblocks.logarray",
242
243 pos_predicate_wavelet_tree_bits: "pos_predicate_wavelet_tree_bits.bitarray",
244 pos_predicate_wavelet_tree_bit_index_blocks:
245 "pos_predicate_wavelet_tree_bit_index_blocks.logarray",
246 pos_predicate_wavelet_tree_bit_index_sblocks:
247 "pos_predicate_wavelet_tree_bit_index_sblocks.logarray",
248
249 neg_predicate_wavelet_tree_bits: "neg_predicate_wavelet_tree_bits.bitarray",
250 neg_predicate_wavelet_tree_bit_index_blocks:
251 "neg_predicate_wavelet_tree_bit_index_blocks.logarray",
252 neg_predicate_wavelet_tree_bit_index_sblocks:
253 "neg_predicate_wavelet_tree_bit_index_sblocks.logarray",
254
255 parent: "parent.hex",
256 rollup: "rollup.hex",
257};
258
259lazy_static! {
260 pub static ref FILENAME_ENUM_MAP: HashMap<&'static str, LayerFileEnum> = HashMap::from([
261 (
262 "node_dictionary_blocks.tfc",
263 LayerFileEnum::NodeDictionaryBlocks
264 ),
265 (
266 "node_dictionary_offsets.logarray",
267 LayerFileEnum::NodeDictionaryOffsets
268 ),
269 (
270 "predicate_dictionary_blocks.tfc",
271 LayerFileEnum::PredicateDictionaryBlocks
272 ),
273 (
274 "predicate_dictionary_offsets.logarray",
275 LayerFileEnum::PredicateDictionaryOffsets
276 ),
277 (
278 "value_dictionary_types.logarray",
279 LayerFileEnum::ValueDictionaryTypesPresent
280 ),
281 (
282 "value_dictionary_type_offsets.logarray",
283 LayerFileEnum::ValueDictionaryTypeOffsets
284 ),
285 (
286 "value_dictionary_blocks.tfc",
287 LayerFileEnum::ValueDictionaryBlocks
288 ),
289 (
290 "value_dictionary_offsets.logarray",
291 LayerFileEnum::ValueDictionaryOffsets
292 ),
293 (
294 "node_value_idmap_bits.bitarray",
295 LayerFileEnum::NodeValueIdMapBits
296 ),
297 (
298 "node_value_idmap_bit_index_blocks.bitarray",
299 LayerFileEnum::NodeValueIdMapBitIndexBlocks
300 ),
301 (
302 "node_value_idmap_bit_index_sblocks.bitarray",
303 LayerFileEnum::NodeValueIdMapBitIndexSBlocks
304 ),
305 (
306 "predicate_idmap_bits.bitarray",
307 LayerFileEnum::PredicateIdMapBits
308 ),
309 (
310 "predicate_idmap_bit_index_blocks.bitarray",
311 LayerFileEnum::PredicateIdMapBitIndexBlocks
312 ),
313 (
314 "predicate_idmap_bit_index_sblocks.bitarray",
315 LayerFileEnum::PredicateIdMapBitIndexSBlocks
316 ),
317 ("base_subjects.logarray", LayerFileEnum::PosSubjects),
318 ("base_objects.logarray", LayerFileEnum::PosObjects),
319 ("child_pos_subjects.logarray", LayerFileEnum::PosSubjects),
320 ("child_pos_objects.logarray", LayerFileEnum::PosObjects),
321 ("child_neg_subjects.logarray", LayerFileEnum::NegSubjects),
322 ("child_neg_objects.logarray", LayerFileEnum::NegObjects),
323 (
324 "base_s_p_adjacency_list_nums.logarray",
325 LayerFileEnum::PosSPAdjacencyListNums
326 ),
327 (
328 "base_s_p_adjacency_list_bits.bitarray",
329 LayerFileEnum::PosSPAdjacencyListBits
330 ),
331 (
332 "base_s_p_adjacency_list_bit_index_blocks.logarray",
333 LayerFileEnum::PosSPAdjacencyListBitIndexBlocks
334 ),
335 (
336 "base_s_p_adjacency_list_bit_index_sblocks.logarray",
337 LayerFileEnum::PosSPAdjacencyListBitIndexSBlocks
338 ),
339 (
340 "base_sp_o_adjacency_list_nums.logarray",
341 LayerFileEnum::PosSpOAdjacencyListNums
342 ),
343 (
344 "base_sp_o_adjacency_list_bits.bitarray",
345 LayerFileEnum::PosSpOAdjacencyListBits
346 ),
347 (
348 "base_sp_o_adjacency_list_bit_index_blocks.logarray",
349 LayerFileEnum::PosSpOAdjacencyListBitIndexBlocks
350 ),
351 (
352 "base_sp_o_adjacency_list_bit_index_sblocks.logarray",
353 LayerFileEnum::PosSpOAdjacencyListBitIndexSBlocks
354 ),
355 (
356 "base_o_ps_adjacency_list_nums.logarray",
357 LayerFileEnum::PosOPsAdjacencyListNums
358 ),
359 (
360 "base_o_ps_adjacency_list_bits.bitarray",
361 LayerFileEnum::PosOPsAdjacencyListBits
362 ),
363 (
364 "base_o_ps_adjacency_list_bit_index_blocks.logarray",
365 LayerFileEnum::PosOPsAdjacencyListBitIndexBlocks
366 ),
367 (
368 "base_o_ps_adjacency_list_bit_index_sblocks.logarray",
369 LayerFileEnum::PosOPsAdjacencyListBitIndexSBlocks
370 ),
371 (
372 "base_predicate_wavelet_tree_bits.bitarray",
373 LayerFileEnum::PosPredicateWaveletTreeBits
374 ),
375 (
376 "base_predicate_wavelet_tree_bit_index_blocks.logarray",
377 LayerFileEnum::PosPredicateWaveletTreeBitIndexBlocks
378 ),
379 (
380 "base_predicate_wavelet_tree_bit_index_sblocks.logarray",
381 LayerFileEnum::PosPredicateWaveletTreeBitIndexSBlocks
382 ),
383 (
384 "pos_s_p_adjacency_list_nums.logarray",
385 LayerFileEnum::PosSPAdjacencyListNums
386 ),
387 (
388 "pos_s_p_adjacency_list_bits.bitarray",
389 LayerFileEnum::PosSPAdjacencyListBits
390 ),
391 (
392 "pos_s_p_adjacency_list_bit_index_blocks.logarray",
393 LayerFileEnum::PosSPAdjacencyListBitIndexBlocks
394 ),
395 (
396 "pos_s_p_adjacency_list_bit_index_sblocks.logarray",
397 LayerFileEnum::PosSPAdjacencyListBitIndexSBlocks
398 ),
399 (
400 "pos_sp_o_adjacency_list_nums.logarray",
401 LayerFileEnum::PosSpOAdjacencyListNums
402 ),
403 (
404 "pos_sp_o_adjacency_list_bits.bitarray",
405 LayerFileEnum::PosSpOAdjacencyListBits
406 ),
407 (
408 "pos_sp_o_adjacency_list_bit_index_blocks.logarray",
409 LayerFileEnum::PosSpOAdjacencyListBitIndexBlocks
410 ),
411 (
412 "pos_sp_o_adjacency_list_bit_index_sblocks.logarray",
413 LayerFileEnum::PosSpOAdjacencyListBitIndexSBlocks
414 ),
415 (
416 "pos_o_ps_adjacency_list_nums.logarray",
417 LayerFileEnum::PosOPsAdjacencyListNums
418 ),
419 (
420 "pos_o_ps_adjacency_list_bits.bitarray",
421 LayerFileEnum::PosOPsAdjacencyListBits
422 ),
423 (
424 "pos_o_ps_adjacency_list_bit_index_blocks.logarray",
425 LayerFileEnum::PosOPsAdjacencyListBitIndexBlocks
426 ),
427 (
428 "pos_o_ps_adjacency_list_bit_index_sblocks.logarray",
429 LayerFileEnum::PosOPsAdjacencyListBitIndexSBlocks
430 ),
431 (
432 "pos_predicate_wavelet_tree_bits.bitarray",
433 LayerFileEnum::PosPredicateWaveletTreeBits
434 ),
435 (
436 "pos_predicate_wavelet_tree_bit_index_blocks.logarray",
437 LayerFileEnum::PosPredicateWaveletTreeBitIndexBlocks
438 ),
439 (
440 "pos_predicate_wavelet_tree_bit_index_sblocks.logarray",
441 LayerFileEnum::PosPredicateWaveletTreeBitIndexSBlocks
442 ),
443 (
444 "neg_s_p_adjacency_list_nums.logarray",
445 LayerFileEnum::NegSPAdjacencyListNums
446 ),
447 (
448 "neg_s_p_adjacency_list_bits.bitarray",
449 LayerFileEnum::NegSPAdjacencyListBits
450 ),
451 (
452 "neg_s_p_adjacency_list_bit_index_blocks.logarray",
453 LayerFileEnum::NegSPAdjacencyListBitIndexBlocks
454 ),
455 (
456 "neg_s_p_adjacency_list_bit_index_sblocks.logarray",
457 LayerFileEnum::NegSPAdjacencyListBitIndexSBlocks
458 ),
459 (
460 "neg_sp_o_adjacency_list_nums.logarray",
461 LayerFileEnum::NegSpOAdjacencyListNums
462 ),
463 (
464 "neg_sp_o_adjacency_list_bits.bitarray",
465 LayerFileEnum::NegSpOAdjacencyListBits
466 ),
467 (
468 "neg_sp_o_adjacency_list_bit_index_blocks.logarray",
469 LayerFileEnum::NegSpOAdjacencyListBitIndexBlocks
470 ),
471 (
472 "neg_sp_o_adjacency_list_bit_index_sblocks.logarray",
473 LayerFileEnum::NegSpOAdjacencyListBitIndexSBlocks
474 ),
475 (
476 "neg_o_ps_adjacency_list_nums.logarray",
477 LayerFileEnum::NegOPsAdjacencyListNums
478 ),
479 (
480 "neg_o_ps_adjacency_list_bits.bitarray",
481 LayerFileEnum::NegOPsAdjacencyListBits
482 ),
483 (
484 "neg_o_ps_adjacency_list_bit_index_blocks.logarray",
485 LayerFileEnum::NegOPsAdjacencyListBitIndexBlocks
486 ),
487 (
488 "neg_o_ps_adjacency_list_bit_index_sblocks.logarray",
489 LayerFileEnum::NegOPsAdjacencyListBitIndexSBlocks
490 ),
491 (
492 "neg_predicate_wavelet_tree_bits.bitarray",
493 LayerFileEnum::NegPredicateWaveletTreeBits
494 ),
495 (
496 "neg_predicate_wavelet_tree_bit_index_blocks.logarray",
497 LayerFileEnum::NegPredicateWaveletTreeBitIndexBlocks
498 ),
499 (
500 "neg_predicate_wavelet_tree_bit_index_sblocks.logarray",
501 LayerFileEnum::NegPredicateWaveletTreeBitIndexSBlocks
502 ),
503 ("parent.hex", LayerFileEnum::Parent),
504 ("rollup.hex", LayerFileEnum::Rollup),
505 ]);
506}
507
508pub const SHARED_REQUIRED_FILES: [&'static str; 8] = [
509 FILENAMES.node_dictionary_blocks,
510 FILENAMES.node_dictionary_offsets,
511 FILENAMES.predicate_dictionary_blocks,
512 FILENAMES.predicate_dictionary_offsets,
513 FILENAMES.value_dictionary_types_present,
514 FILENAMES.value_dictionary_type_offsets,
515 FILENAMES.value_dictionary_blocks,
516 FILENAMES.value_dictionary_offsets,
517];
518
519pub const SHARED_OPTIONAL_FILES: [&'static str; 7] = [
520 FILENAMES.node_value_idmap_bits,
521 FILENAMES.node_value_idmap_bit_index_blocks,
522 FILENAMES.node_value_idmap_bit_index_sblocks,
523 FILENAMES.predicate_idmap_bits,
524 FILENAMES.predicate_idmap_bit_index_blocks,
525 FILENAMES.predicate_idmap_bit_index_sblocks,
526 FILENAMES.rollup,
527];
528
529pub const BASE_LAYER_REQUIRED_FILES: [&'static str; 15] = [
530 FILENAMES.base_s_p_adjacency_list_nums,
531 FILENAMES.base_s_p_adjacency_list_bits,
532 FILENAMES.base_s_p_adjacency_list_bit_index_blocks,
533 FILENAMES.base_s_p_adjacency_list_bit_index_sblocks,
534 FILENAMES.base_sp_o_adjacency_list_nums,
535 FILENAMES.base_sp_o_adjacency_list_bits,
536 FILENAMES.base_sp_o_adjacency_list_bit_index_blocks,
537 FILENAMES.base_sp_o_adjacency_list_bit_index_sblocks,
538 FILENAMES.base_o_ps_adjacency_list_nums,
539 FILENAMES.base_o_ps_adjacency_list_bits,
540 FILENAMES.base_o_ps_adjacency_list_bit_index_blocks,
541 FILENAMES.base_o_ps_adjacency_list_bit_index_sblocks,
542 FILENAMES.base_predicate_wavelet_tree_bits,
543 FILENAMES.base_predicate_wavelet_tree_bit_index_blocks,
544 FILENAMES.base_predicate_wavelet_tree_bit_index_sblocks,
545];
546
547pub const BASE_LAYER_OPTIONAL_FILES: [&'static str; 2] =
548 [FILENAMES.base_subjects, FILENAMES.base_objects];
549
550pub const CHILD_LAYER_REQUIRED_FILES: [&'static str; 31] = [
551 FILENAMES.parent,
552 FILENAMES.pos_s_p_adjacency_list_nums,
553 FILENAMES.pos_s_p_adjacency_list_bits,
554 FILENAMES.pos_s_p_adjacency_list_bit_index_blocks,
555 FILENAMES.pos_s_p_adjacency_list_bit_index_sblocks,
556 FILENAMES.pos_sp_o_adjacency_list_nums,
557 FILENAMES.pos_sp_o_adjacency_list_bits,
558 FILENAMES.pos_sp_o_adjacency_list_bit_index_blocks,
559 FILENAMES.pos_sp_o_adjacency_list_bit_index_sblocks,
560 FILENAMES.pos_o_ps_adjacency_list_nums,
561 FILENAMES.pos_o_ps_adjacency_list_bits,
562 FILENAMES.pos_o_ps_adjacency_list_bit_index_blocks,
563 FILENAMES.pos_o_ps_adjacency_list_bit_index_sblocks,
564 FILENAMES.pos_predicate_wavelet_tree_bits,
565 FILENAMES.pos_predicate_wavelet_tree_bit_index_blocks,
566 FILENAMES.pos_predicate_wavelet_tree_bit_index_sblocks,
567 FILENAMES.neg_s_p_adjacency_list_nums,
568 FILENAMES.neg_s_p_adjacency_list_bits,
569 FILENAMES.neg_s_p_adjacency_list_bit_index_blocks,
570 FILENAMES.neg_s_p_adjacency_list_bit_index_sblocks,
571 FILENAMES.neg_sp_o_adjacency_list_nums,
572 FILENAMES.neg_sp_o_adjacency_list_bits,
573 FILENAMES.neg_sp_o_adjacency_list_bit_index_blocks,
574 FILENAMES.neg_sp_o_adjacency_list_bit_index_sblocks,
575 FILENAMES.neg_o_ps_adjacency_list_nums,
576 FILENAMES.neg_o_ps_adjacency_list_bits,
577 FILENAMES.neg_o_ps_adjacency_list_bit_index_blocks,
578 FILENAMES.neg_o_ps_adjacency_list_bit_index_sblocks,
579 FILENAMES.neg_predicate_wavelet_tree_bits,
580 FILENAMES.neg_predicate_wavelet_tree_bit_index_blocks,
581 FILENAMES.neg_predicate_wavelet_tree_bit_index_sblocks,
582];
583
584pub const CHILD_LAYER_OPTIONAL_FILES: [&'static str; 4] = [
585 FILENAMES.pos_subjects,
586 FILENAMES.pos_objects,
587 FILENAMES.neg_subjects,
588 FILENAMES.neg_objects,
589];