34 template <trivial_copyable_type T,
typename L>
55 , m_data_buffer_index(data_buffer_index)
59 [[nodiscard]]
constexpr T*
data()
61 return get_proxy().buffers()[m_data_buffer_index].template
data<T>()
62 +
static_cast<size_t>(get_proxy().offset());
65 [[nodiscard]]
constexpr const T*
data()
const
67 return get_proxy().buffers()[m_data_buffer_index].template
data<T>()
68 +
static_cast<size_t>(get_proxy().offset());
71 [[nodiscard]]
constexpr T&
value(
size_t i)
77 [[nodiscard]]
constexpr const T&
value(
size_t i)
const
85 auto& buffers = get_proxy().get_array_private_data()->buffers();
91 const size_t new_size = new_length +
static_cast<size_t>(get_proxy().offset());
101 const auto distance = std::distance(value_cbegin,
sparrow::next(pos, get_proxy().offset()));
116 template <mpl::iterator_of_type<T> InputIt>
123 const auto distance = std::distance(value_cbegin,
sparrow::next(pos, get_proxy().offset()));
129 template <mpl::iterator_of_type<T> InputIt>
144 const auto distance =
static_cast<size_t>(
145 std::distance(value_cbegin,
sparrow::next(pos, get_proxy().offset()))
148 const auto first =
sparrow::next(data_buffer.cbegin(), distance);
150 data_buffer.erase(first, last);
177 size_t m_data_buffer_index;
Proxy class over ArrowArray and ArrowSchema.
Class which have internally a reference to a contiguous container of a certain type and provides an A...
static const sparrow::arrow_proxy & get_arrow_proxy(const ARRAY &array)
constexpr value_iterator insert_values(const_value_iterator pos, InputIt first, InputIt last)
trivial_copyable_data_access(L *layout, size_t data_buffer_index)
Constructor for trivial_copyable_data_access.
pointer_iterator< pointer > value_iterator
const inner_value_type * const_pointer
constexpr const T * data() const
constexpr value_iterator erase_values(const_value_iterator pos, size_t count)
constexpr value_iterator insert_values(size_t idx, InputIt first, InputIt last)
constexpr buffer_adaptor< T, buffer< uint8_t > & > get_data_buffer()
constexpr value_iterator erase_values(size_t idx, size_t count)
constexpr void resize_values(size_t new_length, const T &value)
constexpr T & value(size_t i)
constexpr value_iterator insert_value(const_value_iterator pos, T value, size_t count)
constexpr value_iterator insert_value(size_t idx, T value, size_t count)
inner_value_type * pointer
const T & inner_const_reference
pointer_iterator< const_pointer > const_value_iterator
constexpr const T & value(size_t i) const
#define SPARROW_ASSERT_TRUE(expr__)
constexpr InputIt next(InputIt it, Distance n)
auto make_buffer_adaptor(FromBufferRef &buf)