From 375ce63c6390cf7710210ce22f14a2b5a02cbfc3 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Tue, 9 Nov 2021 19:26:17 +0100 Subject: 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 --- core/lib.deno_core.d.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'core/lib.deno_core.d.ts') 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; + + /** + * Write to a (stream) resource that implements write() + */ + function write(rid: number, buf: Uint8Array): Promise; + + /** + * Shutdown a resource + */ + function shutdown(rid: number): Promise; + /** Get heap stats for current isolate/worker */ function heapStats(): Record; -- cgit v1.2.3