UNPKG

@jawis/shared-algs

Version:

Data structures for building concurrent programs.

24 lines (23 loc) 1.2 kB
"use strict"; 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;