@tylerbu/sorted-btree-es6
Version:
A sorted list of key-value pairs in a fast, typed in-memory B+ tree with a powerful API.
2 lines (1 loc) • 1.1 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.forEachKeyInBoth=forEachKeyInBoth;let shared_1=require("./shared"),parallelWalk_1=require("./parallelWalk");function forEachKeyInBoth(r,o,p){var k=r,_=o;if((0,shared_1.checkCanDoSetOperation)(k,_,!0),0!==o.size&&0!==r.size){var n=r._compare,o=()=>{},W=(0,parallelWalk_1.createCursor)(k,o,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop),t=(0,parallelWalk_1.createCursor)(_,o,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop);let l=W,a=t,e=n((0,parallelWalk_1.getKey)(l),(0,parallelWalk_1.getKey)(a));for(;;){var f=0===e;if(f){var s=p((0,parallelWalk_1.getKey)(l),W.leaf.values[W.leafIndex],t.leaf.values[t.leafIndex]);if(s&&s.break)return s.break;var s=(0,parallelWalk_1.moveForwardOne)(a,l),i=(0,parallelWalk_1.moveForwardOne)(l,a);if(s&&i)break;e=n((0,parallelWalk_1.getKey)(l),(0,parallelWalk_1.getKey)(a))}else{e<0&&(s=a,a=l,l=s);var[i,f]=(0,parallelWalk_1.moveTo)(a,l,(0,parallelWalk_1.getKey)(l),!0,f);if(i)break;e=f?0:-1}}}}