tiny-msgpack
Version:
A minimalistic MessagePack encoder and decoder for JavaScript.
29 lines (26 loc) • 835 B
JavaScript
;
// The given argument must be an array of Uint8Arrays.
exports.concat = function (buffers) {
var bufferCount = buffers.length;
var totalLength = 0;
for (var i = 0; i < bufferCount; ++i) {
totalLength += buffers[i].byteLength;
}
var output = exports.alloc(totalLength);
var offset = 0;
for (var i = 0; i < bufferCount; ++i) {
var buffer = buffers[i];
output.set(buffer, offset);
offset += buffer.byteLength;
}
return output;
};
// The first argument must be a Uint8Array.
// Start and end indices will be clamped to the range of the given Uint8Array.
exports.subarray = function (buffer, start, end) {
start = Math.min(Math.max(0, start), buffer.byteLength);
return exports.fromArrayBuffer(buffer.buffer,
buffer.byteOffset + start,
Math.min(Math.max(start, end), buffer.byteLength) - start
);
};