A variable-size binary array.
More...
#include <variable_size_binary_array.hpp>
|
| | variable_size_binary_array_impl (arrow_proxy) |
| | Constructs array from Arrow proxy.
|
| | variable_size_binary_array_impl (const variable_size_binary_array_impl &rhs) |
| | Copy constructor.
|
| variable_size_binary_array_impl & | operator= (const variable_size_binary_array_impl &rhs) |
| | Copy assignment operator.
|
| | variable_size_binary_array_impl (variable_size_binary_array_impl &&rhs) noexcept=default |
| | Move constructor.
|
| variable_size_binary_array_impl & | operator= (variable_size_binary_array_impl &&rhs) noexcept=default |
| | Move assignment operator.
|
template<class... ARGS>
requires (mpl::excludes_copy_and_move_ctor_v<variable_size_binary_array_impl<T, CR, OT>, ARGS...>) |
| | variable_size_binary_array_impl (ARGS &&... args) |
| | Generic constructor for creating array from various inputs.
|
| constexpr inner_reference | value (size_type i) |
| | Gets mutable reference to element at specified index.
|
| constexpr inner_const_reference | value (size_type i) const |
| | Gets const reference to element at specified index.
|
template<std::ranges::sized_range U>
requires mpl::convertible_ranges<U, T> |
| constexpr auto | insert_value (const_value_iterator pos, U value, size_type count) -> value_iterator |
| template<mpl::iterator_of_type< T > InputIt> |
| constexpr auto | insert_values (const_value_iterator pos, InputIt first, InputIt last) -> value_iterator |
| template<mpl::iterator_of_type< OT > InputIt> |
| constexpr auto | insert_offsets (const_offset_iterator pos, InputIt first_sizes, InputIt last_sizes) -> offset_iterator |
| constexpr auto | insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) -> bitmap_iterator is_mutable |
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
class sparrow::variable_size_binary_array_impl< T, CR, OT, Ext >
A variable-size binary array.
This array is used to store variable-length binary data.
Related Apache Arrow description and specification:
Definition at line 290 of file variable_size_binary_array.hpp.
◆ base_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ bitmap_const_reference
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ bitmap_reference
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ bitmap_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ byte_buffer_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ char_buffer_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ const_bitmap_range
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ const_data_iterator
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ const_offset_iterator
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ const_reference
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ const_value_iterator
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ data_iterator
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ data_value_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ difference_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ inner_const_reference
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ inner_reference
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ inner_types
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ inner_value_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ iterator_tag
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ offset_buffer_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ offset_iterator
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ offset_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ reference
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ self_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ size_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ uint8_buffer_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ value_iterator
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ value_type
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ variable_size_binary_array_impl() [1/4]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Constructs array from Arrow proxy.
- Parameters
-
| proxy | Arrow proxy containing variable-size binary array data and schema |
- Precondition
- proxy must contain valid Arrow variable-size binary array and schema
-
proxy format must match the expected format for T and OT
-
For 32-bit offsets: format must be "u" (string) or "z" (binary)
-
For 64-bit offsets: format must be "U" (large string) or "Z" (large binary)
- Postcondition
- Array is initialized with data from proxy
-
All elements are accessible via array interface
- Note
- Internal assertions verify data type and offset type compatibility:
Definition at line 921 of file variable_size_binary_array.hpp.
◆ variable_size_binary_array_impl() [2/4]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Copy constructor.
- Parameters
-
| rhs | Source array to copy from |
- Precondition
- rhs must be in a valid state
- Postcondition
- This array contains a deep copy of rhs data
Definition at line 937 of file variable_size_binary_array.hpp.
◆ variable_size_binary_array_impl() [3/4]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Move constructor.
- Parameters
-
| rhs | Source array to move from |
◆ variable_size_binary_array_impl() [4/4]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Generic constructor for creating array from various inputs.
Creates a variable-size binary array from different input combinations. Arguments are forwarded to compatible create_proxy() functions.
- Template Parameters
-
| ARGS | Parameter pack for constructor arguments |
- Parameters
-
| args | Constructor arguments (data, offsets, validity, metadata, etc.) |
- Precondition
- Arguments must match one of the create_proxy() overload signatures
-
ARGS must exclude copy and move constructor signatures
- Postcondition
- Array is created with the specified data and configuration
Definition at line 406 of file variable_size_binary_array.hpp.
◆ insert_offsets()
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
template<mpl::iterator_of_type< OT > InputIt>
◆ insert_value()
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
template<std::ranges::sized_range U>
requires mpl::convertible_ranges<U, T>
◆ insert_values()
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
template<mpl::iterator_of_type< T > InputIt>
◆ offset_from_sizes()
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
template<std::ranges::range SIZES_RANGE>
Creates offset buffer from a range of sizes.
Converts a range of element sizes into cumulative offsets suitable for the variable-size binary format. The resulting buffer starts with 0 and contains cumulative sums of the input sizes.
- Template Parameters
-
| SIZES_RANGE | Type of the sizes range |
- Parameters
-
| sizes | Range of individual element sizes |
- Returns
- Offset buffer with cumulative offsets
- Precondition
- sizes must be a valid range of size values
- Postcondition
- Returned buffer has size() + 1 elements
-
First element is 0, subsequent elements are cumulative sums
-
Can be used directly for array construction
Definition at line 956 of file variable_size_binary_array.hpp.
◆ operator=() [1/2]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
◆ operator=() [2/2]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Move assignment operator.
- Parameters
-
| rhs | Source array to move assign from |
- Returns
- Reference to this array
◆ value() [1/2]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Gets mutable reference to element at specified index.
- Parameters
-
| i | Index of the element to access |
- Returns
- Mutable reference to the binary element
- Precondition
- i must be < size()
- Postcondition
- Returns valid reference providing access to element data
-
Reference allows modification of the underlying data
- Note
- Internal assertion: SPARROW_ASSERT_TRUE(i < size())
Definition at line 1315 of file variable_size_binary_array.hpp.
◆ value() [2/2]
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
Gets const reference to element at specified index.
- Parameters
-
| i | Index of the element to access |
- Returns
- Const reference to the binary element
- Precondition
- i must be < size()
- Postcondition
- Returns valid const reference to element data
-
Element data spans from offset[i] to offset[i+1]
- Note
- Internal assertions verify index bounds and offset validity:
- SPARROW_ASSERT_TRUE(i < this->size())
- SPARROW_ASSERT_TRUE(offset_begin >= 0)
- SPARROW_ASSERT_TRUE(offset_end >= 0)
Definition at line 1322 of file variable_size_binary_array.hpp.
◆ variable_size_binary_reference< self_type >
template<std::ranges::sized_range T, class CR, layout_offset OT, typename Ext>
The documentation for this class was generated from the following file: