summaryrefslogtreecommitdiff
path: root/core/lib.deno_core.d.ts
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2021-11-09 19:26:17 +0100
committerGitHub <noreply@github.com>2021-11-09 19:26:17 +0100
commit375ce63c6390cf7710210ce22f14a2b5a02cbfc3 (patch)
tree85100876e5e0b50514385ae3c7ce08493c82b38b /core/lib.deno_core.d.ts
parent1eae6c139ee1dac28df57d67d993792b773fa1ff (diff)
feat(core): streams (#12596)
This allows resources to be "streams" by implementing read/write/shutdown. These streams are implicit since their nature (read/write/duplex) isn't known until called, but we could easily add another method to explicitly tag resources as streams. `op_read/op_write/op_shutdown` are now builtin ops provided by `deno_core` Note: this current implementation is simple & straightforward but it results in an additional alloc per read/write call Closes #12556
Diffstat (limited to 'core/lib.deno_core.d.ts')
-rw-r--r--core/lib.deno_core.d.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/lib.deno_core.d.ts b/core/lib.deno_core.d.ts
index 6db01df61..4a5d6433b 100644
--- a/core/lib.deno_core.d.ts
+++ b/core/lib.deno_core.d.ts
@@ -45,6 +45,21 @@ declare namespace Deno {
*/
function tryClose(rid: number): void;
+ /**
+ * Read from a (stream) resource that implements read()
+ */
+ function read(rid: number, buf: Uint8Array): Promise<number>;
+
+ /**
+ * Write to a (stream) resource that implements write()
+ */
+ function write(rid: number, buf: Uint8Array): Promise<number>;
+
+ /**
+ * Shutdown a resource
+ */
+ function shutdown(rid: number): Promise<void>;
+
/** Get heap stats for current isolate/worker */
function heapStats(): Record<string, number>;