archive-wasm
Version:
LibArchive compiled to WASM with a idiomatic JS api
96 lines (94 loc) • 3.12 kB
text/typescript
/*!
* archive-wasm - LibArchive compiled to WASM with a idiomatic JS API
* Copyright (C) 2023 Spacedrive Technology Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/** @private */
export class Pointer {
static NIL: Pointer
static NULL: number
/**
* Free raw pointer
* @param {number} pointer Raw C pointer
*/
static free(pointer: number): void
/**
* High level representation of a WASM memory pointer
* @param {number} [size] Pointer size, 0 means that pointer is managed
* @param {number} [pointer] Raw C pointer
*/
constructor(size?: number, pointer?: number)
/**
* Get underlining raw pointer
* @returns {number} Raw C pointer
*/
get raw(): number
/**
* Get possible allocated size for pointer
*
* > This can be null if pointer is externally managed
*
* > This will be zero when pointer is NULL
* @returns {number?} Allocated pointer size
*/
get size(): number | null
/**
* Fill memory with data
*
* > When grow is false, this method throws when trying to fill a Pointer.NULL pointer,
* otherwise it will realloc the Pointer so it can fit the given data
* @param {bigint | number | string | ArrayLike.<number> | ArrayBufferView | ArrayBufferLike} data to copy to memory
* @param {boolean} [grow] Wheter to alloc more data to make sure data fits inside {@link Pointer}
* @returns {Pointer} This pointer
*/
fill(
data: bigint | number | string | ArrayLike<number> | ArrayBufferView | ArrayBufferLike,
grow?: boolean
): Pointer
/**
* Copy data from WASM memory and return it
* @param {number} [size] How much to read from memory
* @returns {ArrayBuffer} Memory view
*/
read(size?: number): ArrayBuffer
/**
* Copy data from WASM memory and decode it as a string
* @param {string} [encoding] Decoder label
* @returns {string} String representation
*/
readString(encoding?: string): string
/**
* Free internal pointer
*/
free(): void
isNull(): boolean
/**
* Change pointer size
* @param {number} size New pointer size, 0 frees the pointer
* @param {boolean} avoidShrinking Don't reallocate when size is less then current allocated size
* @returns {Pointer} This pointer
*/
realloc(size: number, avoidShrinking?: boolean): Pointer
isManaged(): boolean
#private
}
/**
* void * malloc(size_t size);
*/
export type MallocCB = (size: number) => number
/**
* void free(void *ptr);
*/
export type FreeCB = (pointer: number) => unknown