An immutable, continuous-memory binary array implementing the Apache Arrow Binary columnar format (for raw byte blobs).
Under the hood, data is organized in three buffers:
- Offsets buffer (
offsets): a continuous binary of 32-bit signed integers in little-endian. - Data buffer (
data): a continuous binary containing the concatenated raw byte blobs. - Validity bitmap (
validity): a bitstring tracking null (nil) values (1 bit per element).
Unlike Errow.String, Errow.Binary is meant for opaque byte slices, hashes, PNG/JPEG payloads,
UUIDs, Protobuf blobs, etc.
Summary
Functions
Appends a binary blob or nil to the array.
Returns the byte size of the continuous data buffer.
Deletes the element at index idx.
Fetches the element at the given index or a slice specified by a range.
Supports negative indices (e.g. -1 for the last element).
Builds an Errow.Binary array from a list or enumerable of binaries and optional nils.
Gets the value at index idx or returns default if out of bounds.
Creates a new empty Errow.Binary array.
Checks if the value at the given index is null (nil).
Returns the count of null values.
Replaces the element at the given index with a new binary blob or nil.
Returns the number of elements in the array.
Converts the Errow.Binary array into a standard Elixir list.
Types
@type t() :: %Errow.Binary{ data: binary(), length: non_neg_integer(), null_count: non_neg_integer(), offsets: binary(), validity: bitstring() }
Functions
Appends a binary blob or nil to the array.
@spec buffer_byte_size(t()) :: non_neg_integer()
Returns the byte size of the continuous data buffer.
Deletes the element at index idx.
Fetches the element at the given index or a slice specified by a range.
Supports negative indices (e.g. -1 for the last element).
@spec from_list(Enumerable.t()) :: t()
Builds an Errow.Binary array from a list or enumerable of binaries and optional nils.
Gets the value at index idx or returns default if out of bounds.
@spec new() :: t()
Creates a new empty Errow.Binary array.
Checks if the value at the given index is null (nil).
@spec null_count(t()) :: non_neg_integer()
Returns the count of null values.
Replaces the element at the given index with a new binary blob or nil.
@spec size(t()) :: non_neg_integer()
Returns the number of elements in the array.
Converts the Errow.Binary array into a standard Elixir list.