@hazae41/box
Version:
Rust-like Box and similar objects for TypeScript
31 lines (29 loc) • 709 B
TypeScript
/**
* A reference that can only be disposed once
*/
declare class Once<T extends Disposable> {
#private;
readonly value: T;
/**
* A reference that can only be disposed once
* @param value
*/
constructor(value: T);
[Symbol.dispose](this: Once<Disposable>): void;
[Symbol.asyncDispose](): Promise<void>;
get disposed(): boolean;
get(): T;
}
declare class AsyncOnce<T extends AsyncDisposable> {
#private;
readonly value: T;
/**
* A reference that can only be disposed once
* @param value
*/
constructor(value: T);
[Symbol.asyncDispose](): Promise<void>;
get disposed(): boolean;
get(): T;
}
export { AsyncOnce, Once };