UNPKG

@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.25 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.forEachKeyNotIn=forEachKeyNotIn;let shared_1=require("./shared"),parallelWalk_1=require("./parallelWalk");function forEachKeyNotIn(a,o,p){var k=a,_=o;if((0,shared_1.checkCanDoSetOperation)(k,_,!0),0!==a.size){var n=a._compare,a=()=>{};let e=(0,parallelWalk_1.createCursor)(k,a,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop),r=(0,parallelWalk_1.createCursor)(_,a,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop,parallelWalk_1.noop);var t=()=>{do{var l=(0,parallelWalk_1.getKey)(e),a=e.leaf.values[e.leafIndex],l=p(l,a);if(l&&l.break)return l.break}while(!(0,parallelWalk_1.moveForwardOne)(e,r))};if(0===o.size)return t();let l=n((0,parallelWalk_1.getKey)(e),(0,parallelWalk_1.getKey)(r));for(;;){var W=0===l;if(W){if((0,parallelWalk_1.moveForwardOne)(e,r))break;l=1}else if(l<0){var f=(0,parallelWalk_1.getKey)(e),i=e.leaf.values[e.leafIndex],f=p(f,i);if(f&&f.break)return f.break;if((0,parallelWalk_1.moveForwardOne)(e,r))break;l=n((0,parallelWalk_1.getKey)(e),(0,parallelWalk_1.getKey)(r))}else{var[i,f]=(0,parallelWalk_1.moveTo)(r,e,(0,parallelWalk_1.getKey)(e),!0,W);if(i)return t();l=f?0:-1}}}}