@jawis/shared-algs
Version:
Data structures for building concurrent programs.
24 lines (23 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeMakeNode = void 0;
const _jab_1 = require("^jab");
/**
*
*/
const makeMakeNode = (deps) => {
const DATA_BYTE_OFFSET = 0;
const META_DATA_BYTE_OFFSET = deps.dataSize;
return (node) => {
(0, _jab_1.assert)(Number.isInteger(deps.metaDataSize / deps.NodeTypedArray.BYTES_PER_ELEMENT), "NodeTypedArray must divide node data size: ", { NodeTypedArray: deps.NodeTypedArray, nodeDataSize: deps.metaDataSize }); // prettier-ignore
const metaData = (0, _jab_1.makeTypedArray)(node.data, deps.NodeTypedArray, META_DATA_BYTE_OFFSET, deps.metaDataSize / deps.NodeTypedArray.BYTES_PER_ELEMENT);
(0, _jab_1.assert)(Number.isInteger(deps.dataSize / deps.TypedArray.BYTES_PER_ELEMENT), "TypedArray must divide data size: ", { TypedArray: deps.TypedArray, dataSize: deps.dataSize }); // prettier-ignore
const data = (0, _jab_1.makeTypedArray)(node.data, deps.TypedArray, DATA_BYTE_OFFSET, deps.dataSize / deps.TypedArray.BYTES_PER_ELEMENT);
return {
ref: node.ref,
metaData,
data,
};
};
};
exports.makeMakeNode = makeMakeNode;