sparrow 0.3.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< std::string_view > metadata () 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
 
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 73 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 127 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 82 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 84 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 85 of file union_array.hpp.

◆ derived_type

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

Definition at line 78 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 81 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 79 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 83 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 77 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 86 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 88 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 117 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 80 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 357 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 366 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 478 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 412 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 424 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 436 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 442 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 460 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 466 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 406 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 418 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 430 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 472 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 345 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 351 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 484 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 303 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< std::string_view > sparrow::union_array_crtp_base< DERIVED >::metadata ( ) const
nodiscard

Definition at line 339 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 333 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 372 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 394 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 385 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 256 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 448 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 454 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 400 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 278 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 148 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 143 of file union_array.hpp.

◆ m_proxy

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

Definition at line 141 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 146 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 142 of file union_array.hpp.


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