@lichtblick/cdr
Version:
Common Data Representation serialization and deserialization library
37 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getLengthCodeForObjectSize = exports.lengthCodeToObjectSizes = void 0;
exports.lengthCodeToObjectSizes = {
0: 1,
1: 2,
2: 4,
3: 8,
};
const maxSize = 0xffffffff;
function getLengthCodeForObjectSize(objectSize) {
let defaultLengthCode;
switch (objectSize) {
case 1:
defaultLengthCode = 0;
break;
case 2:
defaultLengthCode = 1;
break;
case 4:
defaultLengthCode = 2;
break;
case 8:
defaultLengthCode = 3;
break;
}
if (defaultLengthCode == undefined) {
// Not currently supporting writing of lengthCodes > 4
if (objectSize > maxSize) {
throw Error(`Object size ${objectSize} for EMHEADER too large without specifying length code. Max size is ${maxSize}`);
}
defaultLengthCode = 4;
}
return defaultLengthCode;
}
exports.getLengthCodeForObjectSize = getLengthCodeForObjectSize;
//# sourceMappingURL=lengthCodes.js.map