Buffer

GitHub   Edit on GitHub

Utilities for working with buffers.

Buffers are data structures that automatically expand as more data is appended. They are useful for storing and operating on an unknown number of bytes. All set or append operations mutate the buffer.

Added in 0.4.0 No other changes yet.
1
import Buffer from "buffer"

Values

Functions for working with the Buffer data type.

Buffer.make

Added in 0.4.0 No other changes yet.
1
make : Number -> Buffer

Creates a fresh buffer, initially empty.

The initialSize parameter is the initial size of the internal byte sequence that holds the buffer contents.
That byte sequence is automatically reallocated when more than initialSize bytes are stored in the buffer, but shrinks back to initialSize characters when reset is called.

Parameters:

param type description
initialSize Number The initial size of the buffer

Returns:

type description
Buffer The new buffer

Buffer.length

Added in 0.4.0 No other changes yet.
1
length : Buffer -> Number

Gets the number of bytes currently contained in a buffer.

Parameters:

param type description
buffer Buffer The buffer to access

Returns:

type description
Number The length of the buffer in bytes

Buffer.clear

Added in 0.4.0 No other changes yet.
1
clear : Buffer -> Void

Clears data in the buffer and sets its length to zero.

This operation does not resize the underlying byte sequence.

Parameters:

param type description
buffer Buffer The buffer to clear

Buffer.reset

Added in 0.4.0 No other changes yet.
1
reset : Buffer -> Void

Empty a buffer and deallocate the internal byte sequence holding the buffer contents.

This operation resizes the underlying byte sequence to the initial size of the buffer.

Parameters:

param type description
buffer Buffer The buffer to reset

Buffer.truncate

Added in 0.4.0 No other changes yet.
1
truncate : (Number, Buffer) -> Void

Shortens a buffer to the given length.

This operation does not resize the underlying byte sequence.

Parameters:

param type description
length Number The number of bytes to truncate the buffer to
buffer Buffer The buffer to truncate

Buffer.toBytes

Added in 0.4.0 No other changes yet.
1
toBytes : Buffer -> Bytes

Returns a copy of the current contents of the buffer as a byte sequence.

Parameters:

param type description
buffer Buffer The buffer to copy into a byte sequence

Returns:

type description
Bytes A byte sequence made from copied buffer data

Buffer.toBytesSlice

Added in 0.4.0 No other changes yet.
1
toBytesSlice : (Number, Number, Buffer) -> Bytes

Returns a slice of the current contents of the buffer as a byte sequence.

Parameters:

param type description
start Number The start index
length Number The number of bytes to include after the starting index
buffer Buffer The buffer to copy from

Returns:

type description
Bytes A byte sequence with bytes copied from the buffer

Buffer.toString

Added in 0.4.0 No other changes yet.
1
toString : Buffer -> String

Returns a copy of the current contents of the buffer as a string.

Parameters:

param type description
buffer Buffer The buffer to stringify

Returns:

type description
String A string made with data copied from the buffer

Buffer.toStringSlice

Added in 0.4.0 No other changes yet.
1
toStringSlice : (Number, Number, Buffer) -> String

Returns a copy of a subset of the current contents of the buffer as a string.

Parameters:

param type description
start Number The start index
length Number The number of bytes to include after the starting index
buffer Buffer The buffer to copy from

Returns:

type description
String A string made with a subset of data copied from the buffer

Buffer.addChar

Added in 0.4.0 No other changes yet.
1
addChar : (Char, Buffer) -> Void

Appends the bytes of a char to a buffer.

Parameters:

param type description
char Char The character to append to the buffer
buffer Buffer The buffer to mutate

Buffer.addBytes

Added in 0.4.0 No other changes yet.
1
addBytes : (Bytes, Buffer) -> Void

Appends a byte sequence to a buffer.

Parameters:

param type description
bytes Bytes The byte sequence to append
buffer Buffer The buffer to mutate

Buffer.addString

Added in 0.4.0 No other changes yet.
1
addString : (String, Buffer) -> Void

Appends the bytes of a string to a buffer.

Parameters:

param type description
string String The string to append
buffer Buffer The buffer to mutate

Buffer.addStringSlice

Added in 0.4.0 No other changes yet.
1
addStringSlice : (Number, Number, String, Buffer) -> Void

Appends the bytes of a subset of a string to a buffer.

Parameters:

param type description
start Number The char offset into the string
length Number The number of bytes to append
string String The string to append
buffer Buffer The buffer to mutate

Buffer.addBytesSlice

Added in 0.4.0 No other changes yet.
1
addBytesSlice : (Number, Number, Bytes, Buffer) -> Void

Appends the bytes of a subset of a byte seuqnece to a buffer.

Parameters:

param type description
start Number The byte offset into the byte sequence
length Number The number of bytes to append
bytes Bytes The byte sequence to append
buffer Buffer The buffer to mutate

Buffer.addBuffer

Added in 0.4.0 No other changes yet.
1
addBuffer : (Buffer, Buffer) -> Void

Appends the bytes of a source buffer to destination buffer.

The source buffer is not mutated by this operation. The destination buffer, however, is mutated.

Parameters:

param type description
srcBuffer Buffer The buffer to append
dstBuffer Buffer The buffer to mutate

Buffer.addBufferSlice

Added in 0.4.0 No other changes yet.
1
addBufferSlice : (Number, Number, Buffer, Buffer) -> Void

Appends the bytes of a part of a buffer to the end of the buffer

The source buffer is not mutated by this operation. The destination buffer, however, is mutated.

Parameters:

param type description
start Number The byte offset into the buffer
length Number The number of bytes to append
srcBuffer Buffer The buffer to append
dstBuffer Buffer The buffer to mutate

Binary operations on integers

Functions for encoding and decoding integers stored in a buffer.

Buffer.getInt8S

Added in 0.4.0 No other changes yet.
1
getInt8S : (Number, Buffer) -> Int32

Gets a signed 8-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Int32 A 32-bit integer representing a signed 8-bit integer that starts at the given index

Buffer.getInt8U

Added in 0.4.0 No other changes yet.
1
getInt8U : (Number, Buffer) -> Int32

Gets an unsigned 8-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Int32 A 32-bit integer representing an unsigned 8-bit integer that starts at the given index

Buffer.setInt8

Added in 0.4.0 No other changes yet.
1
setInt8 : (Number, Int32, Buffer) -> Void

Sets a signed 8-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to update
value Int32 The value to set
buffer Buffer The buffer to mutate

Buffer.addInt8

Added in 0.4.0 No other changes yet.
1
addInt8 : (Int32, Buffer) -> Void

Appends a signed 8-bit integer to a buffer.

Parameters:

param type description
value Int32 The value to append
buffer Buffer The buffer to mutate

Buffer.getInt16S

Added in 0.4.0 No other changes yet.
1
getInt16S : (Number, Buffer) -> Int32

Gets a signed 16-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Int32 A 32-bit integer representing a signed 16-bit integer that starts at the given index

Buffer.getInt16U

Added in 0.4.0 No other changes yet.
1
getInt16U : (Number, Buffer) -> Int32

Gets an unsigned 16-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Int32 A 32-bit integer representing an unsigned 16-bit integer that starts at the given index

Buffer.setInt16

Added in 0.4.0 No other changes yet.
1
setInt16 : (Number, Int32, Buffer) -> Void

Sets a signed 16-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to update
value Int32 The value to set
buffer Buffer The buffer to mutate

Buffer.addInt16

Added in 0.4.0 No other changes yet.
1
addInt16 : (Int32, Buffer) -> Void

Appends a signed 16-bit integer to a buffer.

Parameters:

param type description
value Int32 The value to append
buffer Buffer The buffer to mutate

Buffer.getInt32

Added in 0.4.0 No other changes yet.
1
getInt32 : (Number, Buffer) -> Int32

Gets a signed 32-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Int32 A signed 32-bit integer that starts at the given index

Buffer.setInt32

Added in 0.4.0 No other changes yet.
1
setInt32 : (Number, Int32, Buffer) -> Void

Sets a signed 32-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to update
value Int32 The value to set
buffer Buffer The buffer to mutate

Buffer.addInt32

Added in 0.4.0 No other changes yet.
1
addInt32 : (Int32, Buffer) -> Void

Appends a signed 32-bit integer to a buffer.

Parameters:

param type description
value Int32 The value to append
buffer Buffer The buffer to mutate

Buffer.getFloat32

Added in 0.4.0 No other changes yet.
1
getFloat32 : (Number, Buffer) -> Float32

Gets a 32-bit float starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Float32 A 32-bit float that starts at the given index

Buffer.setFloat32

Added in 0.4.0 No other changes yet.
1
setFloat32 : (Number, Float32, Buffer) -> Void

Sets a 32-bit float starting at the given byte index.

Parameters:

param type description
index Number The byte index to update
value Float32 The value to set
buffer Buffer The buffer to mutate

Buffer.addFloat32

Added in 0.4.0 No other changes yet.
1
addFloat32 : (Float32, Buffer) -> Void

Appends a 32-bit float to a buffer.

Parameters:

param type description
value Float32 The value to append
buffer Buffer The buffer to mutate

Buffer.getInt64

Added in 0.4.0 No other changes yet.
1
getInt64 : (Number, Buffer) -> Int64

Gets a signed 64-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Int64 A signed 64-bit integer that starts at the given index

Buffer.setInt64

Added in 0.4.0 No other changes yet.
1
setInt64 : (Number, Int64, Buffer) -> Void

Sets a signed 64-bit integer starting at the given byte index.

Parameters:

param type description
index Number The byte index to update
value Int64 The value to set
buffer Buffer The buffer to mutate

Buffer.addInt64

Added in 0.4.0 No other changes yet.
1
addInt64 : (Int64, Buffer) -> Void

Appends a signed 64-bit integer to a buffer.

Parameters:

param type description
value Int64 The value to set
buffer Buffer The buffer to mutate

Buffer.getFloat64

Added in 0.4.0 No other changes yet.
1
getFloat64 : (Number, Buffer) -> Float64

Gets a 64-bit float starting at the given byte index.

Parameters:

param type description
index Number The byte index to access
buffer Buffer The buffer to access

Returns:

type description
Float64 A 64-bit float that starts at the given index

Buffer.setFloat64

Added in 0.4.0 No other changes yet.
1
setFloat64 : (Number, Float64, Buffer) -> Void

Sets a 64-bit float starting at the given byte index.

Parameters:

param type description
index Number The byte index to update
value Float64 The value to set
buffer Buffer The buffer to mutate

Buffer.addFloat64

Added in 0.4.0 No other changes yet.
1
addFloat64 : (Float64, Buffer) -> Void

Appends a 64-bit float to a buffer.

Parameters:

param type description
value Float64 The value to append
buffer Buffer The buffer to mutate
This is a notification!