"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() { var start = this.offset; var end = this.buffer.indexOf(0, start); this.offset = end + 1; return this.buffer.toString(this.encoding, start, end); } bytes(length) { const result = this.buffer.slice(this.offset, this.offset + length); this.offset += length; return result; } } exports.BufferReader = BufferReader; //# sourceMappingURL=BufferReader.js.map