Buffer
Edit on GitHubUtilities 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.
Values
Functions for working with the Buffer data type.
Buffer.make
Added in 0.4.0
No other changes yet.
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.
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.
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.
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.
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.
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.
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.
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.
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.addBytes
Added in 0.4.0
No other changes yet.
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.
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.addChar
Added in 0.4.0
No other changes yet.
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.addStringSlice
Added in 0.4.0
| version | changes |
|---|---|
0.5.0 | Now takes the end offset instead of length |
Appends the bytes of a subset of a string to a buffer.
Parameters:
| param | type | description |
|---|---|---|
start |
Number |
The char offset into the string |
end |
Number |
The end offset into the string |
string |
String |
The string to append |
buffer |
Buffer |
The buffer to mutate |
Buffer.addBytesSlice
Added in 0.4.0
No other changes yet.
Appends the bytes of a subset of a byte sequence 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Appends a 64-bit float to a buffer.
Parameters:
| param | type | description |
|---|---|---|
value |
Float64 |
The value to append |
buffer |
Buffer |
The buffer to mutate |