A variable-sized buffer of bytes with read()
and write()
methods.
Constructors
Buffer()
Methods
bytes(options?: { copy?: boolean; }): Uint8Array
Returns a slice holding the unread portion of the buffer.
The slice is valid for use only until the next buffer modification (that
is, only until the next call to a method like read()
, write()
,
reset()
, or truncate()
). If options.copy
is false the slice aliases the buffer content at
least until the next buffer modification, so immediate changes to the
slice will affect the result of future reads.
grow(n: number): void
Grows the buffer's capacity, if necessary, to guarantee space for
another n
bytes. After .grow(n)
, at least n
bytes can be written to
the buffer without another allocation. If n
is negative, .grow()
will
throw. If the buffer can't grow it will throw an error.
Based on Go Lang's Buffer.Grow.
read(p: Uint8Array): Promise<number | null>
Reads the next p.length
bytes from the buffer or until the buffer is
drained. Resolves to the number of bytes read. If the buffer has no
data to return, resolves to EOF (null
).
NOTE: This methods reads bytes synchronously; it's provided for
compatibility with Reader
interfaces.
readFrom(r: Reader): Promise<number>
Reads data from r
until EOF (null
) and appends it to the buffer,
growing the buffer as needed. It resolves to the number of bytes read.
If the buffer becomes too large, .readFrom()
will reject with an error.
Based on Go Lang's Buffer.ReadFrom.
readFromSync(r: ReaderSync): number
Reads data from r
until EOF (null
) and appends it to the buffer,
growing the buffer as needed. It returns the number of bytes read. If the
buffer becomes too large, .readFromSync()
will throw an error.
Based on Go Lang's Buffer.ReadFrom.
readSync(p: Uint8Array): number | null
Reads the next p.length
bytes from the buffer or until the buffer is
drained. Returns the number of bytes read. If the buffer has no data to
return, the return is EOF (null
).
reset(): void
Resets the buffer to be empty, but it retains the underlying storage for
use by future writes. .reset()
is the same as .truncate(0)
.
truncate(n: number): void
Discards all but the first n
unread bytes from the buffer but
continues to use the same allocated storage. It throws if n
is
negative or greater than the length of the buffer.
write(p: Uint8Array): Promise<number>
NOTE: This methods writes bytes synchronously; it's provided for
compatibility with Writer
interface.
writeSync(p: Uint8Array): number