@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
JavaScript
;
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;