UNPKG

@mrhiden/cstruct

Version:

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

66 lines (65 loc) 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WriteBufferBE = void 0; const write_buffer_1 = require("./write-buffer"); class WriteBufferBE extends write_buffer_1.WriteBuffer { u16(val = 0) { const buffer = Buffer.allocUnsafe(2); buffer.writeUInt16BE(val); this.moveOffset(buffer); } i16(val = 0) { const buffer = Buffer.allocUnsafe(2); buffer.writeInt16BE(val); this.moveOffset(buffer); } u32(val = 0) { const buffer = Buffer.allocUnsafe(4); buffer.writeUInt32BE(val); this.moveOffset(buffer); } i32(val = 0) { const buffer = Buffer.allocUnsafe(4); buffer.writeInt32BE(val); this.moveOffset(buffer); } u64(val = 0n) { const buffer = Buffer.allocUnsafe(8); buffer.writeBigUInt64BE(val); this.moveOffset(buffer); } i64(val = 0n) { const buffer = Buffer.allocUnsafe(8); buffer.writeBigInt64BE(val); this.moveOffset(buffer); } f(val = 0) { const buffer = Buffer.allocUnsafe(4); buffer.writeFloatBE(val); this.moveOffset(buffer); } d(val = 0) { const buffer = Buffer.allocUnsafe(8); buffer.writeDoubleBE(val); this.moveOffset(buffer); } constructor() { super(); this._atomFunctions = new Map([ ...[...this._atomFunctions], ['b16', (val) => this.i16(+Boolean(val))], ['b32', (val) => this.i32(+Boolean(val))], ['b64', (val) => this.i64(BigInt(val))], ['u16', (val = 0) => this.u16(val)], ['u32', (val = 0) => this.u32(val)], ['u64', (val = 0n) => this.u64(val)], ['i16', (val = 0) => this.i16(val)], ['i32', (val = 0) => this.i32(val)], ['i64', (val = 0n) => this.i64(val)], ['f', (val = 0) => this.f(val)], ['d', (val = 0) => this.d(val)], ]); this.addPredefinedAliases(); } } exports.WriteBufferBE = WriteBufferBE;