sparrow 0.9.0
Loading...
Searching...
No Matches
sparrow::union_array_crtp_base< DERIVED > Class Template Reference

#include <union_array.hpp>

Inheritance diagram for sparrow::union_array_crtp_base< DERIVED >:
[legend]
Collaboration diagram for sparrow::union_array_crtp_base< DERIVED >:
[legend]

Public Types

using self_type = union_array_crtp_base<DERIVED>
 
using derived_type = DERIVED
 
using inner_value_type = array_traits::inner_value_type
 
using value_type = array_traits::const_reference
 
using functor_type = detail::layout_bracket_functor<derived_type, value_type>
 
using const_functor_type = detail::layout_bracket_functor<const derived_type, value_type>
 
using iterator = functor_index_iterator<functor_type>
 
using const_iterator = functor_index_iterator<const_functor_type>
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 
using size_type = std::size_t
 
using type_id_buffer_type = u8_buffer<std::uint8_t>
 

Public Member Functions

std::optional< std::string_view > name () const
 
std::optional< key_value_viewmetadata () const
 
value_type at (size_type i) const
 
value_type operator[] (size_type i) const
 
value_type operator[] (size_type i)
 
value_type front () const
 
value_type back () const
 
bool empty () const
 
size_type size () const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
void zero_null_values (const inner_value_type &value)
 Sets all null values to the specified value.
 
template<std::ranges::input_range R>
auto type_id_map_from_child_to_type_id (R &&child_index_to_type_id) -> type_id_map
 

Protected Types

using type_id_map = std::array<std::uint8_t, 256>
 
using children_type = std::vector<cloning_ptr<array_wrapper>>
 
- Protected Types inherited from sparrow::crtp_base< DERIVED >
using derived_type
 

Protected Member Functions

children_type make_children (arrow_proxy &proxy)
 
 union_array_crtp_base (arrow_proxy proxy)
 
 union_array_crtp_base (const self_type &rhs)
 
self_typeoperator= (const self_type &rhs)
 
 union_array_crtp_base (self_type &&rhs)=default
 
self_typeoperator= (self_type &&rhs)=default
 
arrow_proxyget_arrow_proxy ()
 
const arrow_proxyget_arrow_proxy () const
 
- Protected Member Functions inherited from sparrow::crtp_base< DERIVED >
derived_typederived_cast ()
 
const derived_typederived_cast () const
 

Static Protected Member Functions

static type_id_map parse_type_id_map (std::string_view format_string)
 
template<std::ranges::input_range R>
static type_id_map type_id_map_from_child_to_type_id (R &&child_index_to_type_id)
 
template<std::ranges::input_range R>
requires (std::convertible_to<std::ranges::range_value_t<R>, std::uint8_t>)
static std::string make_format_string (bool dense, std::size_t n, R &&child_index_to_type_id)
 

Protected Attributes

arrow_proxy m_proxy
 
const std::uint8_t * p_type_ids
 
children_type m_children
 
std::array< std::uint8_t, 256 > m_type_id_map
 

Friends

class detail::array_access
 

Detailed Description

template<class DERIVED>
class sparrow::union_array_crtp_base< DERIVED >

Definition at line 77 of file union_array.hpp.

Member Typedef Documentation

◆ children_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::children_type = std::vector<cloning_ptr<array_wrapper>>
protected

Definition at line 143 of file union_array.hpp.

◆ const_functor_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::const_functor_type = detail::layout_bracket_functor<const derived_type, value_type>

Definition at line 86 of file union_array.hpp.

◆ const_iterator

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::const_iterator = functor_index_iterator<const_functor_type>

Definition at line 88 of file union_array.hpp.

◆ const_reverse_iterator

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 89 of file union_array.hpp.

◆ derived_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::derived_type = DERIVED

Definition at line 82 of file union_array.hpp.

◆ functor_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::functor_type = detail::layout_bracket_functor<derived_type, value_type>

Definition at line 85 of file union_array.hpp.

◆ inner_value_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::inner_value_type = array_traits::inner_value_type

Definition at line 83 of file union_array.hpp.

◆ iterator

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::iterator = functor_index_iterator<functor_type>

Definition at line 87 of file union_array.hpp.

◆ self_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::self_type = union_array_crtp_base<DERIVED>

Definition at line 81 of file union_array.hpp.

◆ size_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::size_type = std::size_t

Definition at line 90 of file union_array.hpp.

◆ type_id_buffer_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::type_id_buffer_type = u8_buffer<std::uint8_t>

Definition at line 92 of file union_array.hpp.

◆ type_id_map

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::type_id_map = std::array<std::uint8_t, 256>
protected

Definition at line 133 of file union_array.hpp.

◆ value_type

template<class DERIVED>
using sparrow::union_array_crtp_base< DERIVED >::value_type = array_traits::const_reference

Definition at line 84 of file union_array.hpp.

Constructor & Destructor Documentation

◆ union_array_crtp_base() [1/3]

template<class DERIVED>
sparrow::union_array_crtp_base< DERIVED >::union_array_crtp_base ( arrow_proxy proxy)
explicitprotected

Definition at line 440 of file union_array.hpp.

Here is the call graph for this function:

◆ union_array_crtp_base() [2/3]

template<class DERIVED>
sparrow::union_array_crtp_base< DERIVED >::union_array_crtp_base ( const self_type & rhs)
protected

Definition at line 449 of file union_array.hpp.

◆ union_array_crtp_base() [3/3]

template<class DERIVED>
sparrow::union_array_crtp_base< DERIVED >::union_array_crtp_base ( self_type && rhs)
protecteddefault

Member Function Documentation

◆ at()

template<class DERIVED>
value_type sparrow::union_array_crtp_base< DERIVED >::at ( size_type i) const
nodiscard

◆ back()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::back ( ) const
nodiscard

Definition at line 561 of file union_array.hpp.

Here is the call graph for this function:

◆ begin() [1/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::begin ( )
nodiscard

Definition at line 495 of file union_array.hpp.

Here is the call graph for this function:

◆ begin() [2/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::begin ( ) const
nodiscard

Definition at line 507 of file union_array.hpp.

Here is the call graph for this function:

◆ cbegin()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::cbegin ( ) const
nodiscard

Definition at line 519 of file union_array.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cend()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::cend ( ) const
nodiscard

Definition at line 525 of file union_array.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ crbegin()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::crbegin ( ) const
nodiscard

Definition at line 543 of file union_array.hpp.

Here is the call graph for this function:

◆ crend()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::crend ( ) const
nodiscard

Definition at line 549 of file union_array.hpp.

Here is the call graph for this function:

◆ empty()

template<class DERIVED>
bool sparrow::union_array_crtp_base< DERIVED >::empty ( ) const
nodiscard

Definition at line 489 of file union_array.hpp.

Here is the call graph for this function:

◆ end() [1/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::end ( )
nodiscard

Definition at line 501 of file union_array.hpp.

Here is the call graph for this function:

◆ end() [2/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::end ( ) const
nodiscard

Definition at line 513 of file union_array.hpp.

Here is the call graph for this function:

◆ front()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::front ( ) const
nodiscard

Definition at line 555 of file union_array.hpp.

◆ get_arrow_proxy() [1/2]

template<class DERIVED>
arrow_proxy & sparrow::union_array_crtp_base< DERIVED >::get_arrow_proxy ( )
nodiscardprotected

Definition at line 428 of file union_array.hpp.

◆ get_arrow_proxy() [2/2]

template<class DERIVED>
const arrow_proxy & sparrow::union_array_crtp_base< DERIVED >::get_arrow_proxy ( ) const
nodiscardprotected

Definition at line 434 of file union_array.hpp.

◆ make_children()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::make_children ( arrow_proxy & proxy)
protected

Definition at line 567 of file union_array.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_format_string()

template<class DERIVED>
requires (std::convertible_to<std::ranges::range_value_t<R>, std::uint8_t>)
template<std::ranges::input_range R>
requires (std::convertible_to<std::ranges::range_value_t<R>, std::uint8_t>)
std::string sparrow::union_array_crtp_base< DERIVED >::make_format_string ( bool dense,
std::size_t n,
R && child_index_to_type_id )
staticprotected

Definition at line 386 of file union_array.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ metadata()

template<class DERIVED>
std::optional< key_value_view > sparrow::union_array_crtp_base< DERIVED >::metadata ( ) const
nodiscard

Definition at line 422 of file union_array.hpp.

◆ name()

template<class DERIVED>
std::optional< std::string_view > sparrow::union_array_crtp_base< DERIVED >::name ( ) const
nodiscard

Definition at line 416 of file union_array.hpp.

◆ operator=() [1/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::operator= ( const self_type & rhs)
protected

Definition at line 455 of file union_array.hpp.

Here is the call graph for this function:

◆ operator=() [2/2]

template<class DERIVED>
self_type & sparrow::union_array_crtp_base< DERIVED >::operator= ( self_type && rhs)
protecteddefault

◆ operator[]() [1/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::operator[] ( size_type i)
nodiscard

Definition at line 477 of file union_array.hpp.

◆ operator[]() [2/2]

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::operator[] ( size_type i) const
nodiscard

Definition at line 468 of file union_array.hpp.

Here is the call graph for this function:

◆ parse_type_id_map()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::parse_type_id_map ( std::string_view format_string)
staticprotected

Definition at line 336 of file union_array.hpp.

Here is the caller graph for this function:

◆ rbegin()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::rbegin ( ) const
nodiscard

Definition at line 531 of file union_array.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rend()

template<class DERIVED>
auto sparrow::union_array_crtp_base< DERIVED >::rend ( ) const
nodiscard

Definition at line 537 of file union_array.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ size()

template<class DERIVED>
std::size_t sparrow::union_array_crtp_base< DERIVED >::size ( ) const
nodiscard

Definition at line 483 of file union_array.hpp.

Here is the caller graph for this function:

◆ type_id_map_from_child_to_type_id() [1/2]

template<class DERIVED>
template<std::ranges::input_range R>
static type_id_map sparrow::union_array_crtp_base< DERIVED >::type_id_map_from_child_to_type_id ( R && child_index_to_type_id)
staticprotected

◆ type_id_map_from_child_to_type_id() [2/2]

template<class DERIVED>
template<std::ranges::input_range R>
auto sparrow::union_array_crtp_base< DERIVED >::type_id_map_from_child_to_type_id ( R && child_index_to_type_id) -> type_id_map

Definition at line 361 of file union_array.hpp.

◆ zero_null_values()

template<class DERIVED>
void sparrow::union_array_crtp_base< DERIVED >::zero_null_values ( const inner_value_type & value)
inline

Sets all null values to the specified value.

This operation modifies the underlying data values but not the validity bitmap. The bitmap remains unchanged, so the elements will still be considered null.

Parameters
valueThe value to assign to null elements

Definition at line 126 of file union_array.hpp.

Friends And Related Symbol Documentation

◆ detail::array_access

template<class DERIVED>
friend class detail::array_access
friend

Definition at line 164 of file union_array.hpp.

Member Data Documentation

◆ m_children

template<class DERIVED>
children_type sparrow::union_array_crtp_base< DERIVED >::m_children
protected

Definition at line 159 of file union_array.hpp.

◆ m_proxy

template<class DERIVED>
arrow_proxy sparrow::union_array_crtp_base< DERIVED >::m_proxy
protected

Definition at line 157 of file union_array.hpp.

◆ m_type_id_map

template<class DERIVED>
std::array<std::uint8_t, 256> sparrow::union_array_crtp_base< DERIVED >::m_type_id_map
protected

Definition at line 162 of file union_array.hpp.

◆ p_type_ids

template<class DERIVED>
const std::uint8_t* sparrow::union_array_crtp_base< DERIVED >::p_type_ids
protected

Definition at line 158 of file union_array.hpp.


The documentation for this class was generated from the following file: