@hazae41/box
Version:
Rust-like Box and similar objects for TypeScript
37 lines (35 loc) • 1.03 kB
TypeScript
/**
* A reference that will be disposed when garbage collected
*/
declare class Auto<T extends Disposable> {
readonly value: T;
static readonly cleanup: (x: Disposable) => void;
static readonly registry: FinalizationRegistry<Disposable>;
/**
* A reference that will be disposed when garbage collected
* @param value
*/
constructor(value: T);
[Symbol.dispose](): void;
[Symbol.asyncDispose](): Promise<void>;
get(): T;
unwrap(): T;
}
/**
* A reference that will be disposed when garbage collected
*/
declare class AsyncAuto<T extends AsyncDisposable> {
readonly value: T;
static readonly cleanup: (x: AsyncDisposable) => PromiseLike<void>;
static readonly registry: FinalizationRegistry<AsyncDisposable>;
/**
* A reference that will be disposed when garbage collected
* @param value
*/
constructor(value: T);
[Symbol.dispose](): void;
[Symbol.asyncDispose](): Promise<void>;
get(): T;
unwrap(): T;
}
export { AsyncAuto, Auto };