31 template <
class D,
bool is_mutable>
33 :
public std::conditional_t<is_mutable, mutable_array_base<D>, array_crtp_base<D>>
72 template <
std::input_iterator InputIt>
73 requires
std::same_as<typename
std::iterator_traits<InputIt>::value_type,
bool>
117 template <class D,
bool is_mutable>
124 template <
class D,
bool is_mutable>
131 template <
class D,
bool is_mutable>
135 base_type::operator=(rhs);
140 template <
class D,
bool is_mutable>
147 template <
class D,
bool is_mutable>
153 template <
class D,
bool is_mutable>
156 static constexpr size_t bitmap_buffer_index = 0;
163 template <
class D,
bool is_mutable>
172 template <
class D,
bool is_mutable>
181 const auto pos_index =
static_cast<size_t>(std::distance(this->bitmap_cbegin(), pos))
187 template <
class D,
bool is_mutable>
188 template <std::input_iterator InputIt>
189 requires std::same_as<typename std::iterator_traits<InputIt>::value_type,
bool>
199 const auto pos_index =
static_cast<size_t>(std::distance(this->bitmap_cbegin(), pos))
205 template <
class D,
bool is_mutable>
213 const auto pos_idx =
static_cast<size_t>(std::distance(this->bitmap_cbegin(), pos));
218 template <
class D,
bool is_mutable>
Base class for arrays using a validity buffer for defining their bitmap.
array_bitmap_base_impl(const array_bitmap_base_impl &)
typename base_type::const_bitmap_range const_bitmap_range
typename base_type::bitmap_iterator bitmap_iterator
array_bitmap_base_impl(array_bitmap_base_impl &&) noexcept=default
bitmap_iterator erase_bitmap(const_bitmap_iterator pos, size_type count)
array_bitmap_base_impl & operator=(const array_bitmap_base_impl &)
bitmap_type & get_bitmap()
typename base_type::iterator_tag iterator_tag
typename base_type::const_bitmap_iterator const_bitmap_iterator
void resize_bitmap(size_type new_length, bool value)
non_owning_dynamic_bitset< uint8_t > get_non_owning_dynamic_bitset()
std::conditional_t< is_mutable, mutable_array_base< D >, array_crtp_base< D > > base_type
bitmap_type make_bitmap()
typename base_type::bitmap_const_reference bitmap_const_reference
array_bitmap_base_impl(arrow_proxy)
typename base_type::bitmap_type bitmap_type
bitmap_iterator insert_bitmap(const_bitmap_iterator pos, bool value, size_type count)
typename base_type::difference_type difference_type
Base class defining common immutable interface for arrays with a bitmap.
Proxy class over ArrowArray and ArrowSchema.
SPARROW_API size_t offset() const
SPARROW_API size_t length() const
SPARROW_API void resize_bitmap(size_t new_size, bool value=true)
Resize the bitmap buffer of the ArrowArray.
SPARROW_API size_t erase_bitmap(size_t index, size_t count=1)
Erase several elements in the bitmap buffer at the given index.
SPARROW_API const std::vector< sparrow::buffer_view< uint8_t > > & buffers() const
SPARROW_API size_t insert_bitmap(size_t index, bool value, size_t count=1)
Insert elements of the same value in the bitmap buffer at the given index.
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 typedef to be used as a crtp base class for arrays using a mutable validity buffer.
constexpr InputIt next(InputIt it, Distance n)
array_bitmap_base_impl< D, false > array_bitmap_base
Convenient typedef to be used as a crtp base class for arrays using an immutable validity buffer.