51 template <
class D,
bool is_mutable>
53 :
public std::conditional_t<is_mutable, mutable_array_base<D>, array_crtp_base<D>>
207 template <
std::input_iterator InputIt>
208 requires
std::same_as<typename
std::iterator_traits<InputIt>::value_type,
bool>
312 template <class D,
bool is_mutable>
319 template <
class D,
bool is_mutable>
326 template <
class D,
bool is_mutable>
330 base_type::operator=(rhs);
335 template <
class D,
bool is_mutable>
342 template <
class D,
bool is_mutable>
348 template <
class D,
bool is_mutable>
351 constexpr size_t bitmap_buffer_index = 0;
358 template <
class D,
bool is_mutable>
367 template <
class D,
bool is_mutable>
376 const auto pos_index =
static_cast<size_t>(std::distance(this->bitmap_cbegin(), pos))
382 template <
class D,
bool is_mutable>
383 template <std::input_iterator InputIt>
384 requires std::same_as<typename std::iterator_traits<InputIt>::value_type,
bool>
394 const auto pos_index =
static_cast<size_t>(std::distance(this->bitmap_cbegin(), pos))
400 template <
class D,
bool is_mutable>
409 const auto pos_idx =
static_cast<size_t>(std::distance(this->bitmap_cbegin(), pos));
414 template <
class D,
bool is_mutable>
constexpr bitmap_type make_bitmap()
array_bitmap_base_impl(arrow_proxy proxy)
Constructs array bitmap base from Arrow proxy.
typename base_type::const_bitmap_range const_bitmap_range
typename base_type::bitmap_iterator bitmap_iterator
constexpr array_bitmap_base_impl(array_bitmap_base_impl &&) noexcept=default
constexpr non_owning_dynamic_bitset< uint8_t > get_non_owning_dynamic_bitset()
constexpr array_bitmap_base_impl(const array_bitmap_base_impl &)
constexpr bitmap_type & get_bitmap()
constexpr void resize_bitmap(size_type new_length, bool value)
constexpr bitmap_iterator insert_bitmap(const_bitmap_iterator pos, bool value, size_type count)
typename base_type::iterator_tag iterator_tag
typename base_type::const_bitmap_iterator const_bitmap_iterator
constexpr array_bitmap_base_impl & operator=(const array_bitmap_base_impl &)
constexpr bitmap_iterator erase_bitmap(const_bitmap_iterator pos, size_type count)
std::conditional_t< is_mutable, mutable_array_base< D >, array_crtp_base< D > > base_type
typename base_type::bitmap_const_reference bitmap_const_reference
typename base_type::bitmap_type bitmap_type
typename base_type::difference_type difference_type
SPARROW_API size_t offset() const
Gets the starting offset within the buffers.
SPARROW_API size_t length() const
Gets the number of elements in the array.
SPARROW_API void resize_bitmap(size_t new_size, bool value=true)
Resizes the validity bitmap buffer.
SPARROW_API size_t erase_bitmap(size_t index, size_t count=1)
Erases validity bits starting at specified position.
SPARROW_API const std::vector< sparrow::buffer_view< uint8_t > > & buffers() const
Gets const reference to the buffer views.
SPARROW_API size_t insert_bitmap(size_t index, bool value, size_t count=1)
Inserts validity bits with the same value at specified position.
Base class definining common interface for arrays with a bitmap.
#define SPARROW_ASSERT_TRUE(expr__)
array_bitmap_base_impl< D, true > mutable_array_bitmap_base
Convenient alias for arrays with mutable validity bitmaps.
constexpr InputIt next(InputIt it, Distance n)
array_bitmap_base_impl< D, false > array_bitmap_base
Convenient alias for arrays with immutable validity bitmaps.