"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const emptyBuffer = Buffer.allocUnsafe(0); class BufferReader { constructor(offset = 0) { this.offset = offset; this.buffer = emptyBuffer; // TODO(bmc): support non-utf8 encoding? this.encoding = 'utf-8'; } setBuffer(offset, buffer) { this.offset = offset; this.buffer = buffer; } int16() { const result = this.buffer.readInt16BE(this.offset); this.offset += 2; return result; } byte() { const result = this.buffer[this.offset]; this.offset++; return result; } int32() { const result = this.buffer.readInt32BE(this.offset); this.offset += 4; return result; } string(length) { const result = this.buffer.toString(this.encoding, this.offset, this.offset + length); this.offset += length; return result; } cstring() { const start = this.offset; let end = start; while (this.buffer[end++] !== 0) { } this.offset = end; return this.buffer.toString(this.encoding, start, end - 1); } bytes(length) { const result = this.buffer.slice(this.offset, this.offset + length); this.offset += length; return result; } } exports.BufferReader = BufferReader; //# sourceMappingURL=buffer-reader.js.map