summaryrefslogtreecommitdiff
path: root/std/io/writers.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/io/writers.ts')
-rw-r--r--std/io/writers.ts42
1 files changed, 0 insertions, 42 deletions
diff --git a/std/io/writers.ts b/std/io/writers.ts
deleted file mode 100644
index a9ce82180..000000000
--- a/std/io/writers.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-type Writer = Deno.Writer;
-type WriterSync = Deno.WriterSync;
-import { decode, encode } from "../encoding/utf8.ts";
-
-/** Writer utility for buffering string chunks */
-export class StringWriter implements Writer, WriterSync {
- private chunks: Uint8Array[] = [];
- private byteLength = 0;
- private cache: string | undefined;
-
- constructor(private base: string = "") {
- const c = encode(base);
- this.chunks.push(c);
- this.byteLength += c.byteLength;
- }
-
- write(p: Uint8Array): Promise<number> {
- return Promise.resolve(this.writeSync(p));
- }
-
- writeSync(p: Uint8Array): number {
- this.chunks.push(p);
- this.byteLength += p.byteLength;
- this.cache = undefined;
- return p.byteLength;
- }
-
- toString(): string {
- if (this.cache) {
- return this.cache;
- }
- const buf = new Uint8Array(this.byteLength);
- let offs = 0;
- for (const chunk of this.chunks) {
- buf.set(chunk, offs);
- offs += chunk.byteLength;
- }
- this.cache = decode(buf);
- return this.cache;
- }
-}