@hazae41/box
Version:
Rust-like Box and similar objects for TypeScript
33 lines (31 loc) • 750 B
TypeScript
/**
* A mutable reference
*/
declare class Slot<T extends Disposable> {
value: T;
/**
* A mutable reference
* @param value
*/
constructor(value: T);
[Symbol.dispose](): void;
[Symbol.asyncDispose](): Promise<void>;
static create<T extends Disposable>(value: T): Slot<T>;
get(): T;
set(value: T): void;
getAndSet(value: T): T;
}
declare class AsyncSlot<T extends AsyncDisposable> {
value: T;
/**
* A mutable reference
* @param value
*/
constructor(value: T);
[Symbol.asyncDispose](): Promise<void>;
static create<T extends AsyncDisposable>(value: T): AsyncSlot<T>;
get(): T;
set(value: T): void;
getAndSet(value: T): T;
}
export { AsyncSlot, Slot };