Files
ospab.host/node_modules/effect/dist/cjs/internal/redBlackTree/node.js
2025-09-15 18:10:26 +03:00

60 lines
936 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.repaint = exports.recount = exports.clone = exports.Color = void 0;
exports.swap = swap;
/** @internal */
const Color = exports.Color = {
Red: 0,
Black: 1 << 0
};
/** @internal */
const clone = ({
color,
count,
key,
left,
right,
value
}) => ({
color,
key,
value,
left,
right,
count
});
/** @internal */
exports.clone = clone;
function swap(n, v) {
n.key = v.key;
n.value = v.value;
n.left = v.left;
n.right = v.right;
n.color = v.color;
n.count = v.count;
}
/** @internal */
const repaint = ({
count,
key,
left,
right,
value
}, color) => ({
color,
key,
value,
left,
right,
count
});
/** @internal */
exports.repaint = repaint;
const recount = node => {
node.count = 1 + (node.left?.count ?? 0) + (node.right?.count ?? 0);
};
exports.recount = recount;
//# sourceMappingURL=node.js.map