@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
432 lines • 11.2 kB
TypeScript
/**
* Utility for reading/writing binary data
* Mostly useful for serialization/deserialization tasks
*/
export class BinaryBuffer {
/**
*
* @param {EndianType} type
* @return {BinaryBuffer}
*/
static fromEndianness(type: EndianType): BinaryBuffer;
/**
*
* @param {ArrayBuffer} v
* @return {BinaryBuffer}
*/
static fromArrayBuffer(v: ArrayBuffer): BinaryBuffer;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {string} Copied value
*/
static copyUTF8String(source: BinaryBuffer, target: BinaryBuffer): string;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {number} Copied value
*/
static copyUintVar(source: BinaryBuffer, target: BinaryBuffer): number;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {number} Copied value
*/
static copyUint8(source: BinaryBuffer, target: BinaryBuffer): number;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {number} Copied value
*/
static copyUint16(source: BinaryBuffer, target: BinaryBuffer): number;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {number} Copied value
*/
static copyUint32(source: BinaryBuffer, target: BinaryBuffer): number;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {number} Copied value
*/
static copyFloat32(source: BinaryBuffer, target: BinaryBuffer): number;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @returns {number} Copied value
*/
static copyFloat64(source: BinaryBuffer, target: BinaryBuffer): number;
/**
*
* @param {BinaryBuffer} source
* @param {BinaryBuffer} target
* @param {number} length
*/
static copyBytes(source: BinaryBuffer, target: BinaryBuffer, length: number): Uint8Array<ArrayBuffer>;
/**
* Default is little-endian as most platforms operate in little-endian
* The reason this is fixed is to ensure cross-platform compatibility
* @type {EndianType|boolean}
*/
endianness: EndianType | boolean;
/**
*
* @type {number}
*/
position: number;
set length(v: void);
get length(): void;
/**
*
* @type {number}
*/
capacity: number;
/**
*
* @type {ArrayBuffer}
* @private
*/
private data;
/**
*
* @type {DataView}
* @private
*/
private dataView;
/**
*
* @type {Uint8Array}
* @private
*/
private __data_uint8;
/**
*
* @type {number}
* @private
*/
private __growFactor;
/**
* Access raw underlying bytes attached to the buffer
* @return {Uint8Array}
*/
get raw_bytes(): Uint8Array;
/**
* @param {ArrayBuffer} data
*/
fromArrayBuffer(data: ArrayBuffer): void;
/**
* Set capacity to contain data only up to current position
* @returns {BinaryBuffer}
*/
trim(): BinaryBuffer;
/**
*
* @param {number} capacity
*/
setCapacity(capacity: number): void;
/**
*
* @param {number} min_capacity
*/
ensureCapacity(min_capacity: number): void;
/**
*
* @returns {number}
*/
readFloat16(): number;
/**
*
* @returns {number}
*/
readFloat32(): number;
/**
*
* @returns {number}
*/
readFloat64(): number;
readInt8(): number;
readInt16(): number;
/**
*
* @returns {number}
*/
readInt32(): number;
/**
*
* @returns {number}
*/
readUint8(): number;
/**
*
* @returns {number}
*/
readUint16(): number;
/**
*
* @returns {number}
*/
readUint16LE(): number;
/**
*
* @returns {number}
*/
readUint16BE(): number;
/**
*
* @returns {number}
*/
readUint24(): number;
/**
*
* @returns {number}
*/
readUint24LE(): number;
/**
*
* @returns {number}
*/
readUint24BE(): number;
/**
*
* @returns {number}
*/
readUint32(): number;
/**
*
* @returns {number}
*/
readUint32LE(): number;
/**
*
* @returns {number}
*/
readUint32BE(): number;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Uint8Array} destination
*/
readUint8Array(destination: Uint8Array, destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Uint16Array} destination
*/
readUint16Array(destination: Uint16Array, destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Uint32Array|number[]|ArrayLike<number>} destination
*/
readUint32Array(destination: Uint32Array | number[] | ArrayLike<number>, destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Int8Array} destination
*/
readInt8Array(destination: Int8Array, destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Int16Array} destination
*/
readInt16Array(destination: Int16Array, destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Int32Array} destination
*/
readInt32Array(destination: Int32Array, destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Float32Array|number[]} destination
*/
readFloat32Array(destination: Float32Array | number[], destination_offset: number, length: number): void;
/**
*
* @param {number} destination_offset starting index in the destination array
* @param {number} length number of elements to read
* @param {Float64Array} destination
*/
readFloat64Array(destination: Float64Array, destination_offset: number, length: number): void;
/**
*
* @param {number} source_offset starting index in the source array
* @param {number} length number of elements to read
* @param {Float32Array|number[]} source
*/
writeFloat32Array(source: Float32Array | number[], source_offset: number, length: number): void;
/**
*
* @param {number} value
*/
writeFloat16(value: number): void;
/**
*
* @param {number} value
*/
writeFloat32(value: number): void;
/**
*
* @param {number} value
*/
writeFloat64(value: number): void;
/**
*
* @param {number} value
*/
writeInt8(value: number): void;
/**
*
* @param {number} value
*/
writeInt16(value: number): void;
/**
*
* @param {number} value
*/
writeInt32(value: number): void;
/**
*
* @param {number} value
*/
writeUint8(value: number): void;
/**
*
* @param {Uint8Array|number[]} source
* @param {number} source_offset
* @param {number} length
*/
writeUint8Array(source: Uint8Array | number[], source_offset: number, length: number): void;
/**
*
* @param {number} value
*/
writeUint16(value: number): void;
/**
*
* @param {number} value
*/
writeUint16BE(value: number): void;
/**
*
* @param {number} value
*/
writeUint16LE(value: number): void;
/**
*
* @param {Uint16Array|number[]} source
* @param {number} source_offset
* @param {number} length
*/
writeUint16Array(source: Uint16Array | number[], source_offset: number, length: number): void;
/**
*
* @param {number} value
*/
writeUint24(value: number): void;
/**
*
* @param {number} value
*/
writeUint24BE(value: number): void;
/**
*
* @param {number} value
*/
writeUint24LE(value: number): void;
/**
* Write Uint of variable length
* NOTE: uses 7-bit encoding with 1 bit used for carry-over flag
* @param {number} value
*/
writeUintVar(value: number): void;
/**
* Read Uint of variable length, a compliment to {@link #writeUintVar}
* @returns {number}
*/
readUintVar(): number;
/**
*
* @param {number} value
*/
writeUint32(value: number): void;
/**
*
* @param {number} value
*/
writeUint32BE(value: number): void;
/**
*
* @param {number} value
*/
writeUint32LE(value: number): void;
/**
*
* @param {Uint32Array|number[]|ArrayLike<number>} source
* @param {number} source_offset
* @param {number} length
*/
writeUint32Array(source: Uint32Array | number[] | ArrayLike<number>, source_offset: number, length: number): void;
/**
*
* @param {Uint8Array|Uint8ClampedArray} array
* @param {number} source_offset
* @param {number} length
*/
writeBytes(array: Uint8Array | Uint8ClampedArray, source_offset: number, length: number): void;
/**
*
* @param {Uint8Array} destination
* @param {number} destination_offset
* @param {number} length
*/
readBytes(destination: Uint8Array, destination_offset: number, length: number): void;
/**
* Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js
* @licence Original license is Apache 2.0
* @param {String} string
*/
writeUTF8String(string: string): void;
/**
* Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js
* @licence Original license is Apache 2.0
* @returns {String}
*/
readUTF8String(): string;
/**
*
* @param {string} string
*/
writeASCIIString(string: string): void;
/**
*
* @param {number} length
* @param {boolean} [null_terminated]
* @returns {string}
*/
readASCIICharacters(length: number, null_terminated?: boolean): string;
/**
* @readonly
* @type {boolean}
*/
readonly isBinaryBuffer: boolean;
}
import { EndianType } from "./EndianType.js";
//# sourceMappingURL=BinaryBuffer.d.ts.map