UNPKG

@mrhiden/cstruct

Version:

For packing and unpacking bytes (C like structures) in/from Buffer based on Object/Array type for parsing.

70 lines (69 loc) 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AtomTypes = void 0; class AtomTypes { } exports.AtomTypes = AtomTypes; AtomTypes.BOOL = 'b8'; AtomTypes.B8 = 'b8'; AtomTypes.B16 = 'b16'; AtomTypes.B32 = 'b32'; AtomTypes.B64 = 'b64'; AtomTypes.U8 = 'u8'; AtomTypes.U16 = 'u16'; AtomTypes.U32 = 'u32'; AtomTypes.U64 = 'u64'; AtomTypes.BYTE = 'u8'; AtomTypes.WORD = 'u16'; AtomTypes.DWORD = 'u32'; AtomTypes.LWORD = 'u64'; AtomTypes.QWORD = 'u64'; AtomTypes.I8 = 'i8'; AtomTypes.I16 = 'i16'; AtomTypes.I32 = 'i32'; AtomTypes.I64 = 'i64'; AtomTypes.CHAR = 'i8'; AtomTypes.SINT = 'i8'; AtomTypes.INT = 'i16'; AtomTypes.DINT = 'i32'; AtomTypes.LINT = 'i64'; AtomTypes.QINT = 'i64'; AtomTypes.F = 'f'; AtomTypes.F32 = 'f'; AtomTypes.REAL = 'f'; AtomTypes.D = 'd'; AtomTypes.F64 = 'd'; AtomTypes.LREAL = 'd'; AtomTypes.S = (size) => Number.isFinite(size) ? /*{number}*/ `s${size}` // S(0) -> End zero : /*{string}*/ `s[${size}]`; // S("0") ->Trailing zero AtomTypes.STR = AtomTypes.S; AtomTypes.STRING = AtomTypes.S; AtomTypes.SE0 = AtomTypes.S(0); // 's0' AtomTypes.SEndZero = AtomTypes.S(0); // 's0' -> '{a: "s0"}' -> End zero AtomTypes.ST0 = AtomTypes.S('0'); // 's[0]' AtomTypes.STrailingZero = AtomTypes.S('0'); // 's[0]' -> '{a.0: "s"}' -> Trailing zero AtomTypes.STREndZero = AtomTypes.SEndZero; AtomTypes.STRINGEndZero = AtomTypes.SEndZero; AtomTypes.STRTTrailingZero = AtomTypes.STrailingZero; AtomTypes.STRINGTTrailingZero = AtomTypes.STrailingZero; AtomTypes.WS = (size) => Number.isFinite(size) ? /*{number}*/ `ws${size}` // S(0) -> End zero : /*{string}*/ `ws[${size}]`; // S("0") ->Trailing zero AtomTypes.WSTR = AtomTypes.WS; AtomTypes.WSTRING = AtomTypes.WS; AtomTypes.WSE0 = AtomTypes.WS(0); // 'ws0' AtomTypes.WSEndZero = AtomTypes.WS(0); // 'ws0' -> '{a: "ws0"}' -> End zero AtomTypes.WST0 = AtomTypes.WS('0'); // 'ws[0]' AtomTypes.WSTrailingZero = AtomTypes.WS('0'); // 'ws[0]' -> '{a.0: "ws"}' -> Trailing zero AtomTypes.WSTREndZero = AtomTypes.WSEndZero; AtomTypes.WSTRINGEndZero = AtomTypes.WSEndZero; AtomTypes.WSTTrailingZero = AtomTypes.WSTrailingZero; AtomTypes.WSTRINGTTrailingZero = AtomTypes.WSTrailingZero; AtomTypes.BUF = (size) => `buf${size}`; AtomTypes.BUFFER = AtomTypes.BUF; AtomTypes.J = (size) => Number.isFinite(size) ? /*{number}*/ `j${size}` // J(0) -> End zero : /*{string}*/ `j[${size}]`; // J("0") ->Trailing zero AtomTypes.JSON = AtomTypes.J; AtomTypes.ANY = AtomTypes.J;