43 template <std::ranges::input_range CHILDREN_OWNERSHIP>
44 requires std::is_same_v<std::ranges::range_value_t<CHILDREN_OWNERSHIP>,
bool>
61 [[nodiscard]] constexpr const T**
buffers_ptrs() noexcept;
66 std::vector<
std::uint8_t*> m_buffers_pointers;
69 template <
std::
ranges::input_range CHILDREN_OWNERSHIP>
70 requires
std::is_same_v<
std::
ranges::range_value_t<CHILDREN_OWNERSHIP>,
bool>
73 const CHILDREN_OWNERSHIP& children_ownership_range,
74 bool dictionary_ownership_value
88 [[nodiscard]]
constexpr const std::vector<buffer<std::uint8_t>>&
96 m_buffers.resize(size);
103 m_buffers[index] = std::move(
buffer);
104 m_buffers_pointers[index] = m_buffers[index].data();
110 m_buffers[index] =
buffer;
111 m_buffers_pointers[index] = m_buffers[index].
data();
118 m_buffers[index].resize(size, value);
119 m_buffers_pointers[index] = m_buffers[index].data();
125 return const_cast<const T**
>(
reinterpret_cast<T**
>(m_buffers_pointers.data()));
constexpr BufferType & buffers() noexcept
void set_buffer(std::size_t index, buffer< std::uint8_t > &&buffer)
SPARROW_CONSTEXPR_GCC_11 void resize_buffer(std::size_t index, std::size_t size, std::uint8_t value)
constexpr arrow_array_private_data(BufferType buffers, const CHILDREN_OWNERSHIP &children_ownership, bool dictionary_ownership)
SPARROW_CONSTEXPR_GCC_11 void resize_buffers(std::size_t size)
SPARROW_CONSTEXPR_GCC_11 void update_buffers_ptrs()
std::vector< buffer< std::uint8_t > > BufferType
constexpr const T ** buffers_ptrs() noexcept
Object that owns a piece of contiguous memory.
constexpr U * data() noexcept
children_ownership(std::size_t size=0)
dictionary_ownership(bool ownership)
#define SPARROW_CONSTEXPR_GCC_11
#define SPARROW_ASSERT_TRUE(expr__)
constexpr std::vector< T *, Allocator > to_raw_ptr_vec(Range &range)
Create a vector of pointers to elements from a range.