summaryrefslogtreecommitdiff
path: root/node_modules/blake3-wasm/esm/base/disposable.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/blake3-wasm/esm/base/disposable.d.ts')
-rw-r--r--node_modules/blake3-wasm/esm/base/disposable.d.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/node_modules/blake3-wasm/esm/base/disposable.d.ts b/node_modules/blake3-wasm/esm/base/disposable.d.ts
new file mode 100644
index 0000000..27db792
--- /dev/null
+++ b/node_modules/blake3-wasm/esm/base/disposable.d.ts
@@ -0,0 +1,17 @@
+/**
+ * A type which requires manual disposal to free unmanaged resources. In the
+ * context of this library, this usually means freeing memory from WebAssembly
+ * code.
+ */
+export interface IDisposable {
+ /**
+ * Frees unmanaged resources of the object. This method is idempotent;
+ * calling it multiple times will have no ill effects.
+ */
+ dispose(): void;
+}
+/**
+ * A helper function that calls `.dispose()` on the {@link IDisposable} when
+ * the given function (or promise returned by the function) returns.
+ */
+export declare const using: <T, D extends IDisposable>(disposable: D, fn: (d: D) => T) => T;