ESC
No recent searches
Search by
Standard Library  /  Buffer

Buffer

Utilities for working with buffers.

Edit on GitHub

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.
from "buffer" include Buffer
Buffer.make(64)

Types

Type declarations included in the Buffer module.

Buffer.Buffer

type Buffer

Values

Functions and constants included in the Buffer module.

Buffer.make

Added in 0.4.0 No other changes yet.
make : (initialSize: 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:

initialSize: The initial size of the buffer

Returns:

Buffer: The new buffer

Throws:

InvalidArgument(String)

  • When the initialSize is a negative number

Examples:

Buffer.make(0)
Buffer.make(64)

Buffer.length

Added in 0.4.0 No other changes yet.
length : (buffer: Buffer) => Number

Gets the number of bytes currently contained in a buffer.

Parameters:

buffer: The buffer to access

Returns:

Number: The length of the buffer in bytes

Examples:

Buffer.length(Buffer.make(32)) == 0
let buf = Buffer.make(32)
Buffer.addInt32(1l, buf)
assert Buffer.length(buf) == 4

Buffer.clear

Added in 0.4.0 No other changes yet.
clear : (buffer: Buffer) => Void

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

This operation does not resize the underlying byte sequence.

Parameters:

buffer: The buffer to clear

Examples:

let buf = Buffer.make(0)
Buffer.addInt32(1l, buf)
assert Buffer.length(buf) == 4
Buffer.clear(buf)
assert Buffer.length(buf) == 0

Buffer.reset

Added in 0.4.0 No other changes yet.
reset : (buffer: 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:

buffer: The buffer to reset

Examples:

let buf = Buffer.make(0)
Buffer.addInt32(1l, buf)
assert Buffer.length(buf) == 4
Buffer.reset(buf)
assert Buffer.length(buf) == 0

Buffer.truncate

Added in 0.4.0 No other changes yet.
truncate : (length: Number, buffer: Buffer) => Void

Shortens a buffer to the given length.

This operation does not resize the underlying byte sequence.

Parameters:

length: The number of bytes to truncate the buffer to
buffer: The buffer to truncate

Throws:

IndexOutOfBounds

  • When the length is negative
  • When the length is greater than the buffer size

Examples:

let buf = Buffer.make(0)
Buffer.addInt32(1l, buf)
assert Buffer.length(buf) == 4
Buffer.truncate(1, buf)
assert Buffer.length(buf) == 1

Buffer.toBytes

Added in 0.4.0 No other changes yet.
toBytes : (buffer: Buffer) => Bytes

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

Parameters:

buffer: The buffer to copy into a byte sequence

Returns:

Bytes: A byte sequence made from copied buffer data

Examples:

let buf = Buffer.make(0)
Buffer.addString("test", buf)
assert Buffer.toBytes(buf) == b"test"

Buffer.toBytesSlice

Added in 0.4.0 No other changes yet.
toBytesSlice : (start: Number, length: Number, buffer: Buffer) => Bytes

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

Parameters:

start: The start index
length: The number of bytes to include after the starting index
buffer: The buffer to copy from

Returns:

Bytes: A byte sequence with bytes copied from the buffer

Throws:

IndexOutOfBounds

  • When start is negative
  • When start is greater than or equal to the buffer size
  • When start + length is greater than the buffer size

Examples:

let buf = Buffer.make(0)
Buffer.addString("HelloWorld", buf)
assert Buffer.toBytesSlice(0, 5, buf) == b"Hello"

Buffer.toString

Added in 0.4.0 No other changes yet.
toString : (buffer: Buffer) => String

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

Parameters:

buffer: The buffer to stringify

Returns:

String: A string made with data copied from the buffer

Examples:

let buf = Buffer.make(0)
Buffer.addString("HelloWorld", buf)
assert Buffer.toString(buf) == "HelloWorld"

Buffer.toStringSlice

Added in 0.4.0 No other changes yet.
toStringSlice : (start: Number, length: Number, buffer: Buffer) => String

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

Parameters:

start: The start index
length: The number of bytes to include after the starting index
buffer: The buffer to copy from

Returns:

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

Examples:

let buf = Buffer.make(0)
Buffer.addString("HelloWorld", buf)
assert Buffer.toStringSlice(0, 5, buf) == "Hello"

Buffer.addBytes

Added in 0.4.0 No other changes yet.
addBytes : (bytes: Bytes, buffer: Buffer) => Void

Appends a byte sequence to a buffer.

Parameters:

bytes: The byte sequence to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addBytes(b"test", buf)
assert Buffer.toBytes(buf) == b"test"

Buffer.addString

Added in 0.4.0 No other changes yet.
addString : (string: String, buffer: Buffer) => Void

Appends the bytes of a string to a buffer.

Parameters:

string: The string to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addString("Hello", buf)
assert Buffer.toString(buf) == "Hello"

Buffer.addChar

Added in 0.4.0 No other changes yet.
addChar : (char: Char, buffer: Buffer) => Void

Appends the bytes of a character to a buffer.

Parameters:

char: The character to append to the buffer
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addChar('H', buf)
assert Buffer.toString(buf) == "H"

Buffer.addCharFromCodePoint

Added in 0.6.0 No other changes yet.
addCharFromCodePoint : (codePoint: Number, buffer: Buffer) => Void

Appends a character represented by a code point to a buffer.

Parameters:

codePoint: The code point to append to the buffer
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addCharFromCodePoint(72, buf)
assert Buffer.toString(buf) == "H"

Buffer.addStringSlice

Added in 0.4.0
versionchanges
0.5.0Now takes the end offset instead of length
addStringSlice :
  (start: Number, end: Number, string: String, buffer: Buffer) => Void

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

Parameters:

start: The char offset into the string
end: The end offset into the string
string: The string to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addStringSlice(0, 5, "HelloWorld", buf)
assert Buffer.toString(buf) == "Hello"

Buffer.addBytesSlice

Added in 0.4.0 No other changes yet.
addBytesSlice :
  (start: Number, length: Number, bytes: Bytes, buffer: Buffer) => Void

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

Parameters:

start: The byte offset into the byte sequence
length: The number of bytes to append
bytes: The byte sequence to append
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When the start is negative
  • When the start is greater than or equal to the bytes size
  • When the length is negative
  • When the length is greater than the bytes length minus start

Examples:

let buf = Buffer.make(0)
Buffer.addBytesSlice(0, 5, b"HelloWorld", buf)
assert Buffer.toString(buf) == "Hello"

Buffer.addBuffer

Added in 0.4.0 No other changes yet.
addBuffer : (srcBuffer: Buffer, dstBuffer: 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:

srcBuffer: The buffer to append
dstBuffer: The buffer to mutate

Examples:

let buf1 = Buffer.make(0)
Buffer.addString("Hello", buf1)
let buf2 = Buffer.make(0)
Buffer.addString("World", buf2)
Buffer.addBuffer(buf2, buf1)
assert Buffer.toString(buf1) == "HelloWorld"

Buffer.addBufferSlice

Added in 0.4.0 No other changes yet.
addBufferSlice :
  (start: Number, length: Number, srcBuffer: Buffer, dstBuffer: 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:

start: The byte offset into the buffer
length: The number of bytes to append
srcBuffer: The buffer to append
dstBuffer: The buffer to mutate

Examples:

let buf1 = Buffer.make(0)
Buffer.addString("Hello", buf1)
let buf2 = Buffer.make(0)
Buffer.addString("HiWorld", buf2)
Buffer.addBufferSlice(2, 5, buf2, buf1)
assert Buffer.toString(buf1) == "HelloWorld"

Buffer.getInt8

Added in 0.6.0
versionchanges
0.4.0Originally called `getInt8S`, returning an `Int32`
getInt8 : (index: Number, buffer: Buffer) => Int8

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

Int8: A signed 8-bit integer that starts at the given index

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 1 is greater than the buffer size

Examples:

let buf = Buffer.make(0)
Buffer.addInt8(1s, buf)
assert Buffer.getInt8(0, buf) == 1s

Buffer.setInt8

Added in 0.4.0
versionchanges
0.6.0`value` argument type changed to `Int8`
setInt8 : (index: Number, value: Int8, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 1 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setInt8(0, 3s, buf)
assert Buffer.getInt8(0, buf) == 3s

Buffer.addInt8

Added in 0.4.0
versionchanges
0.6.0`value` argument type changed to `Int8`
addInt8 : (value: Int8, buffer: Buffer) => Void

Appends a signed 8-bit integer to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addInt8(2s, buf)
assert Buffer.getInt8(0, buf) == 2s

Buffer.getUint8

Added in 0.6.0
versionchanges
0.4.0Originally called `getInt8U`, returning an `Int32`
getUint8 : (index: Number, buffer: Buffer) => Uint8

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

Uint8: An unsigned 8-bit integer that starts at the given index

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 1 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addUint8(3us, buf)
assert Buffer.getUint8(0, buf) == 3us

Buffer.setUint8

Added in 0.6.0 No other changes yet.
setUint8 : (index: Number, value: Uint8, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 1 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setUint8(4us, buf)
assert Buffer.getUint8(0, buf) == 4us

Buffer.addUint8

Added in 0.6.0 No other changes yet.
addUint8 : (value: Uint8, buffer: Buffer) => Void

Appends an unsigned 8-bit integer to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(32)
Buffer.addUint8(0us, buf)
assert Buffer.getUint8(0, buf) == 0us

Buffer.getInt16

Added in 0.6.0
versionchanges
0.4.0Originally called `getInt16S`, returning an `Int32`
getInt16 : (index: Number, buffer: Buffer) => Int16

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

Int16: A signed 16-bit integer that starts at the given index

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 2 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addInt16(1S, buf)
assert Buffer.getInt16(0, buf) == 1S

Buffer.setInt16

Added in 0.4.0
versionchanges
0.6.0`value` argument type changed to `Int16`
setInt16 : (index: Number, value: Int16, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 2 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setInt16(5, 1S, buf)
assert Buffer.getInt16(5, buf) == 1S

Buffer.addInt16

Added in 0.4.0
versionchanges
0.6.0`value` argument type changed to `Int16`
addInt16 : (value: Int16, buffer: Buffer) => Void

Appends a signed 16-bit integer to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addInt16(2S, buf)
assert Buffer.getInt16(0, buf) == 2S

Buffer.getUint16

Added in 0.6.0
versionchanges
0.4.0Originally called `getInt16U`, returning an `Int32`
getUint16 : (index: Number, buffer: Buffer) => Uint16

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

Uint16: An unsigned 16-bit integer that starts at the given index

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 2 is greater than the buffer size

Examples:

let buf = Buffer.make(0)
Buffer.addUint16(1uS, buf)
assert Buffer.getUint16(0, buf) == 1uS

Buffer.setUint16

Added in 0.6.0 No other changes yet.
setUint16 : (index: Number, value: Uint16, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 2 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setUint16(0, 1uS, buf)
assert Buffer.getUint16(0, buf) == 1uS

Buffer.addUint16

Added in 0.6.0 No other changes yet.
addUint16 : (value: Uint16, buffer: Buffer) => Void

Appends an unsigned 16-bit integer to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(0)
Buffer.addUint16(0, 2uS, buf)
assert Buffer.getUint16(0, buf) == 2uS

Buffer.getInt32

Added in 0.4.0 No other changes yet.
getInt32 : (index: Number, buffer: Buffer) => Int32

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

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

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 4 is greater than the buffer size

Examples:

let buf = Buffer.make(0)
Buffer.addInt32(1l, buf)
assert Buffer.getInt32(0, buf) == 1l

Buffer.setInt32

Added in 0.4.0 No other changes yet.
setInt32 : (index: Number, value: Int32, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 4 is greater than the buffer size

Examples:

let buf = Buffer.make(64)
Buffer.addString("Hello World", buf)
Buffer.setInt32(3, 1l, buf)
assert Buffer.getInt32(3, buf) == 1l

Buffer.addInt32

Added in 0.4.0 No other changes yet.
addInt32 : (value: Int32, buffer: Buffer) => Void

Appends a signed 32-bit integer to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(64)
Buffer.addInt32(1l, buf)
assert Buffer.getInt32(0, buf) == 1l

Buffer.getUint32

Added in 0.6.0 No other changes yet.
getUint32 : (index: Number, buffer: Buffer) => Uint32

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

Uint32: An unsigned 32-bit integer that starts at the given index

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 4 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addUint32(1ul, buf)
assert Buffer.getUint32(0, buf) == 1ul

Buffer.setUint32

Added in 0.6.0 No other changes yet.
setUint32 : (index: Number, value: Uint32, buffer: Buffer) => Void

Sets an unsigned 32-bit integer starting at the given byte index.

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 4 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setUint32(0, 1ul, buf)
assert Buffer.getUint32(0, buf) == 1ul

Buffer.addUint32

Added in 0.6.0 No other changes yet.
addUint32 : (value: Uint32, buffer: Buffer) => Void

Appends an unsigned 32-bit integer to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(32)
Buffer.addUint32(1ul, buf)
assert Buffer.getUint32(0, buf) == 1ul

Buffer.getFloat32

Added in 0.4.0 No other changes yet.
getFloat32 : (index: Number, buffer: Buffer) => Float32

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

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

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 4 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addFloat32(1.0f, buf)
assert Buffer.getFloat32(0, buf) == 1.0f

Buffer.setFloat32

Added in 0.4.0 No other changes yet.
setFloat32 : (index: Number, value: Float32, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 4 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setFloat32(0, 1.0f, buf)
assert Buffer.getFloat32(0, buf) == 1.0f

Buffer.addFloat32

Added in 0.4.0 No other changes yet.
addFloat32 : (value: Float32, buffer: Buffer) => Void

Appends a 32-bit float to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(32)
Buffer.addFloat32(1.0f, buf)
assert Buffer.getFloat32(0, buf) == 1.0f

Buffer.getInt64

Added in 0.4.0 No other changes yet.
getInt64 : (index: Number, buffer: Buffer) => Int64

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

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

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 8 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addInt64(1L, buf)
assert Buffer.getInt64(0, buf) == 1L

Buffer.setInt64

Added in 0.4.0 No other changes yet.
setInt64 : (index: Number, value: Int64, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 8 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setInt64(0, 1L, buf)
assert Buffer.getInt64(0, buf) == 1L

Buffer.addInt64

Added in 0.4.0 No other changes yet.
addInt64 : (value: Int64, buffer: Buffer) => Void

Appends a signed 64-bit integer to a buffer.

Parameters:

value: The value to set
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(32)
Buffer.addInt64(1L, buf)
assert Buffer.getInt64(0, buf) == 1L

Buffer.getUint64

Added in 0.6.0 No other changes yet.
getUint64 : (index: Number, buffer: Buffer) => Uint64

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

Uint64: An unsigned 64-bit integer that starts at the given index

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 8 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addUint64(1uL, buf)
assert Buffer.getUint64(0, buf) == 1uL

Buffer.setUint64

Added in 0.6.0 No other changes yet.
setUint64 : (index: Number, value: Uint64, buffer: Buffer) => Void

Sets an unsigned 64-bit integer starting at the given byte index.

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 8 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setUint64(0, 1uL, buf)
assert Buffer.getUint64(0, buf) == 1uL

Buffer.addUint64

Added in 0.6.0 No other changes yet.
addUint64 : (value: Uint64, buffer: Buffer) => Void

Appends an unsigned 64-bit integer to a buffer.

Parameters:

value: The value to set
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(32)
Buffer.addUint64(1uL, buf)
assert Buffer.getUint64(0, buf) == 1uL

Buffer.getFloat64

Added in 0.4.0 No other changes yet.
getFloat64 : (index: Number, buffer: Buffer) => Float64

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

Parameters:

index: The byte index to access
buffer: The buffer to access

Returns:

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

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 8 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addFloat64(1.0F, buf)
assert Buffer.getFloat64(0, buf) == 1.0F

Buffer.setFloat64

Added in 0.4.0 No other changes yet.
setFloat64 : (index: Number, value: Float64, buffer: Buffer) => Void

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

Parameters:

index: The byte index to update
value: The value to set
buffer: The buffer to mutate

Throws:

IndexOutOfBounds

  • When index is negative
  • When index is greater than or equal to the buffer size
  • When index + 8 is greater than the buffer size

Examples:

let buf = Buffer.make(32)
Buffer.addString("Hello World", buf)
Buffer.setFloat64(0, 1.0F, buf)
assert Buffer.getFloat64(0, buf) == 1.0F

Buffer.addFloat64

Added in 0.4.0 No other changes yet.
addFloat64 : (value: Float64, buffer: Buffer) => Void

Appends a 64-bit float to a buffer.

Parameters:

value: The value to append
buffer: The buffer to mutate

Examples:

let buf = Buffer.make(32)
Buffer.addFloat64(1.0F, buf)
assert Buffer.getFloat64(0, buf) == 1.0F

Sign up for farm-to-inbox developer news

You can unsubscribe at any time. Read our privacy policy.

Copyright © 2024 The Grain Programming Language