sparrow 0.3.0
Loading...
Searching...
No Matches
sparrow::array_trivial_copyable< T > Class Template Reference

#include <array_trivial_copyable.hpp>

Inheritance diagram for sparrow::array_trivial_copyable< T >:
[legend]
Collaboration diagram for sparrow::array_trivial_copyable< T >:
[legend]

Public Types

using self_type = array_trivial_copyable<T>
 
using base_type = mutable_array_bitmap_base<array_trivial_copyable<T>>
 
using access_class_type = details::trivial_copyable_data_access<T, self_type>
 
using size_type = std::size_t
 
using inner_types = array_inner_types<self_type>
 
using inner_value_type = typename inner_types::inner_value_type
 
using inner_reference = typename inner_types::inner_reference
 
using inner_const_reference = typename inner_types::inner_const_reference
 
using pointer = typename inner_types::pointer
 
using const_pointer = typename inner_types::const_pointer
 
using value_iterator = typename base_type::value_iterator
 
using const_value_iterator = typename base_type::const_value_iterator
 
- Public Types inherited from sparrow::array_bitmap_base_impl< D, true >
using base_type
 
using size_type
 
using bitmap_type
 
using bitmap_iterator
 
using const_bitmap_iterator
 
using bitmap_const_reference
 
using difference_type
 
using const_bitmap_range
 
using iterator_tag
 
- Public Types inherited from sparrow::details::trivial_copyable_data_access< T, array_trivial_copyable< T > >
using inner_value_type
 
using inner_reference
 
using inner_const_reference
 
using pointer
 
using const_pointer
 
using value_iterator
 
using const_value_iterator
 

Public Member Functions

 array_trivial_copyable (arrow_proxy)
 
template<class... Args>
requires (mpl::excludes_copy_and_move_ctor_v<array_trivial_copyable<T>, Args...>)
 array_trivial_copyable (Args &&... args)
 Constructs an array of trivial copyable type, with the passed range of values and an optional bitmap.
 
 array_trivial_copyable (std::initializer_list< inner_value_type > init, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt)
 Constructs a primitive array from an initializer_list of raw values.
 
 array_trivial_copyable (const array_trivial_copyable &)
 
array_trivial_copyableoperator= (const array_trivial_copyable &)
 
 array_trivial_copyable (array_trivial_copyable &&rhs) noexcept
 
array_trivial_copyableoperator= (array_trivial_copyable &&rhs) noexcept
 
template<std::ranges::input_range VALUE_RANGE, validity_bitmap_input R>
requires (std::convertible_to<std::ranges::range_value_t<VALUE_RANGE>, T>)
arrow_proxy create_proxy (VALUE_RANGE &&values, R &&validity_input, std::optional< std::string_view > name, std::optional< std::string_view > metadata)
 
- Public Member Functions inherited from sparrow::array_bitmap_base_impl< D, true >
auto insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) -> bitmap_iterator is_mutable
 
auto insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) -> bitmap_iterator is_mutable
 
- Public Member Functions inherited from sparrow::details::trivial_copyable_data_access< T, array_trivial_copyable< T > >
 trivial_copyable_data_access (array_trivial_copyable< T > *layout, size_t data_buffer_index)
 Constructor for trivial_copyable_data_access.
 
constexpr T * data ()
 
constexpr const T * data () const
 
constexpr T & value (size_t i)
 
constexpr const T & value (size_t i) const
 
constexpr buffer_adaptor< T, buffer< uint8_t > & > get_data_buffer ()
 
constexpr void resize_values (size_t new_length, const T &value)
 
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)
 
constexpr value_iterator insert_values (const_value_iterator pos, InputIt first, InputIt last)
 
constexpr value_iterator insert_values (size_t idx, InputIt first, InputIt last)
 
constexpr value_iterator erase_values (const_value_iterator pos, size_t count)
 
constexpr value_iterator erase_values (size_t idx, size_t count)
 

Protected Member Functions

value_iterator value_begin ()
 
value_iterator value_end ()
 
const_value_iterator value_cbegin () const
 
const_value_iterator value_cend () const
 
constexpr T * data ()
 
constexpr const T * data () const
 
constexpr T & value (size_t i)
 
constexpr const T & value (size_t i) const
 
constexpr value_iterator erase_values (const_value_iterator pos, size_t count)
 
constexpr value_iterator erase_values (size_t idx, size_t count)
 
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)
 
constexpr value_iterator insert_values (const_value_iterator pos, InputIt first, InputIt last)
 
constexpr value_iterator insert_values (size_t idx, InputIt first, InputIt last)
 
constexpr void resize_values (size_t new_length, const T &value)
 
- Protected Member Functions inherited from sparrow::array_bitmap_base_impl< D, true >
 array_bitmap_base_impl (arrow_proxy)
 
 array_bitmap_base_impl (const array_bitmap_base_impl &)
 
array_bitmap_base_imploperator= (const array_bitmap_base_impl &)
 
 array_bitmap_base_impl (array_bitmap_base_impl &&) noexcept=default
 
array_bitmap_base_imploperator= (array_bitmap_base_impl &&) noexcept=default
 
bitmap_typeget_bitmap ()
 
const bitmap_typeget_bitmap () const
 
void resize_bitmap (size_type new_length, bool value)
 
bitmap_iterator insert_bitmap (const_bitmap_iterator pos, bool value, size_type count)
 
bitmap_iterator insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) is_mutable
 
bitmap_iterator erase_bitmap (const_bitmap_iterator pos, size_type count)
 
void update ()
 
non_owning_dynamic_bitset< uint8_t > get_non_owning_dynamic_bitset ()
 
bitmap_type make_bitmap ()
 
 array_bitmap_base_impl (arrow_proxy)
 
 array_bitmap_base_impl (const array_bitmap_base_impl &)
 
 array_bitmap_base_impl (array_bitmap_base_impl &&) noexcept=default
 
array_bitmap_base_imploperator= (const array_bitmap_base_impl &)
 
array_bitmap_base_imploperator= (array_bitmap_base_impl &&) noexcept=default
 
bitmap_typeget_bitmap ()
 
const bitmap_typeget_bitmap () const
 
void resize_bitmap (size_type new_length, bool value)
 
bitmap_iterator insert_bitmap (const_bitmap_iterator pos, bool value, size_type count)
 
bitmap_iterator insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) is_mutable
 
bitmap_iterator erase_bitmap (const_bitmap_iterator pos, size_type count)
 
void update ()
 
non_owning_dynamic_bitset< uint8_t > get_non_owning_dynamic_bitset ()
 
bitmap_type make_bitmap ()
 

Static Protected Member Functions

static arrow_proxy create_proxy (size_type n, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt)
 
template<validity_bitmap_input R = validity_bitmap>
static auto create_proxy (u8_buffer< T > &&data_buffer, R &&bitmaps=validity_bitmap{}, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt) -> arrow_proxy
 
template<std::ranges::input_range R>
requires std::convertible_to<std::ranges::range_value_t<R>, T>
static auto create_proxy (R &&range, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt) -> arrow_proxy
 
template<class U>
requires std::convertible_to<U, T>
static arrow_proxy create_proxy (size_type n, const U &value=U{}, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt)
 
template<std::ranges::input_range R, validity_bitmap_input R2>
requires (std::convertible_to<std::ranges::range_value_t<R>, T>)
static arrow_proxy create_proxy (R &&, R2 &&, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt)
 
template<std::ranges::input_range R>
requires std::is_same_v<std::ranges::range_value_t<R>, nullable<T>>
static arrow_proxy create_proxy (R &&, std::optional< std::string_view > name=std::nullopt, std::optional< std::string_view > metadata=std::nullopt)
 

Protected Attributes

friend base_type
 

Static Protected Attributes

static constexpr size_type DATA_BUFFER_INDEX = 1
 

Friends

class run_end_encoded_array
 

Detailed Description

template<trivial_copyable_type T>
class sparrow::array_trivial_copyable< T >

Definition at line 52 of file array_trivial_copyable.hpp.

Member Typedef Documentation

◆ access_class_type

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::access_class_type = details::trivial_copyable_data_access<T, self_type>

Definition at line 59 of file array_trivial_copyable.hpp.

◆ base_type

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::base_type = mutable_array_bitmap_base<array_trivial_copyable<T>>

Definition at line 58 of file array_trivial_copyable.hpp.

◆ const_pointer

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::const_pointer = typename inner_types::const_pointer

Definition at line 68 of file array_trivial_copyable.hpp.

◆ const_value_iterator

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::const_value_iterator = typename base_type::const_value_iterator

Definition at line 71 of file array_trivial_copyable.hpp.

◆ inner_const_reference

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::inner_const_reference = typename inner_types::inner_const_reference

Definition at line 65 of file array_trivial_copyable.hpp.

◆ inner_reference

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::inner_reference = typename inner_types::inner_reference

Definition at line 64 of file array_trivial_copyable.hpp.

◆ inner_types

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::inner_types = array_inner_types<self_type>

Definition at line 62 of file array_trivial_copyable.hpp.

◆ inner_value_type

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::inner_value_type = typename inner_types::inner_value_type

Definition at line 63 of file array_trivial_copyable.hpp.

◆ pointer

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::pointer = typename inner_types::pointer

Definition at line 67 of file array_trivial_copyable.hpp.

◆ self_type

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::self_type = array_trivial_copyable<T>

Definition at line 57 of file array_trivial_copyable.hpp.

◆ size_type

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::size_type = std::size_t

Definition at line 60 of file array_trivial_copyable.hpp.

◆ value_iterator

template<trivial_copyable_type T>
using sparrow::array_trivial_copyable< T >::value_iterator = typename base_type::value_iterator

Definition at line 70 of file array_trivial_copyable.hpp.

Constructor & Destructor Documentation

◆ array_trivial_copyable() [1/5]

template<trivial_copyable_type T>
sparrow::array_trivial_copyable< T >::array_trivial_copyable ( arrow_proxy proxy_param)
explicit

Definition at line 217 of file array_trivial_copyable.hpp.

Here is the caller graph for this function:

◆ array_trivial_copyable() [2/5]

template<trivial_copyable_type T>
template<class... Args>
requires (mpl::excludes_copy_and_move_ctor_v<array_trivial_copyable<T>, Args...>)
sparrow::array_trivial_copyable< T >::array_trivial_copyable ( Args &&... args)
inlineexplicit

Constructs an array of trivial copyable type, with the passed range of values and an optional bitmap.

The first argument can be any range of values as long as its value type is convertible to T. The second argument can be:

Definition at line 101 of file array_trivial_copyable.hpp.

◆ array_trivial_copyable() [3/5]

template<trivial_copyable_type T>
sparrow::array_trivial_copyable< T >::array_trivial_copyable ( std::initializer_list< inner_value_type > init,
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt )
inline

Constructs a primitive array from an initializer_list of raw values.

Definition at line 110 of file array_trivial_copyable.hpp.

◆ array_trivial_copyable() [4/5]

template<trivial_copyable_type T>
sparrow::array_trivial_copyable< T >::array_trivial_copyable ( const array_trivial_copyable< T > & rhs)

Definition at line 224 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

◆ array_trivial_copyable() [5/5]

template<trivial_copyable_type T>
sparrow::array_trivial_copyable< T >::array_trivial_copyable ( array_trivial_copyable< T > && rhs)
inlinenoexcept

Definition at line 123 of file array_trivial_copyable.hpp.

Member Function Documentation

◆ create_proxy() [1/7]

template<trivial_copyable_type T>
template<std::ranges::input_range R, validity_bitmap_input R2>
requires (std::convertible_to<std::ranges::range_value_t<R>, T>)
static arrow_proxy sparrow::array_trivial_copyable< T >::create_proxy ( R && ,
R2 && ,
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt )
staticprotected

◆ create_proxy() [2/7]

template<trivial_copyable_type T>
requires std::is_same_v<std::ranges::range_value_t<R>, nullable<T>>
template<std::ranges::input_range R>
requires std::is_same_v<std::ranges::range_value_t<R>, nullable<T>>
arrow_proxy sparrow::array_trivial_copyable< T >::create_proxy ( R && range,
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt )
staticprotected

Definition at line 339 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

◆ create_proxy() [3/7]

template<trivial_copyable_type T>
template<std::ranges::input_range R>
requires std::convertible_to<std::ranges::range_value_t<R>, T>
static auto sparrow::array_trivial_copyable< T >::create_proxy ( R && range,
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt ) -> arrow_proxy
staticprotected

◆ create_proxy() [4/7]

template<trivial_copyable_type T>
requires std::convertible_to<U, T>
template<class U>
requires std::convertible_to<U, T>
arrow_proxy sparrow::array_trivial_copyable< T >::create_proxy ( size_type n,
const U & value = U{},
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt )
staticprotected

Definition at line 324 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

◆ create_proxy() [5/7]

template<trivial_copyable_type T>
static arrow_proxy sparrow::array_trivial_copyable< T >::create_proxy ( size_type n,
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt )
staticprotected
Here is the caller graph for this function:

◆ create_proxy() [6/7]

template<trivial_copyable_type T>
template<validity_bitmap_input R>
auto sparrow::array_trivial_copyable< T >::create_proxy ( u8_buffer< T > && data_buffer,
R && bitmaps = validity_bitmap{},
std::optional< std::string_view > name = std::nullopt,
std::optional< std::string_view > metadata = std::nullopt ) -> arrow_proxy
staticprotected

Definition at line 263 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

◆ create_proxy() [7/7]

template<trivial_copyable_type T>
template<std::ranges::input_range VALUE_RANGE, validity_bitmap_input R>
requires (std::convertible_to<std::ranges::range_value_t<VALUE_RANGE>, T>)
arrow_proxy sparrow::array_trivial_copyable< T >::create_proxy ( VALUE_RANGE && values,
R && validity_input,
std::optional< std::string_view > name,
std::optional< std::string_view > metadata )

Definition at line 305 of file array_trivial_copyable.hpp.

◆ data() [1/2]

template<trivial_copyable_type T>
T * sparrow::details::trivial_copyable_data_access< T, self_type >::data ( )
inlinenodiscardconstexprprotected

Definition at line 59 of file trivial_copyable_data_access.hpp.

Here is the caller graph for this function:

◆ data() [2/2]

template<trivial_copyable_type T>
const T * sparrow::details::trivial_copyable_data_access< T, self_type >::data ( ) const
inlinenodiscardconstexprprotected

Definition at line 65 of file trivial_copyable_data_access.hpp.

◆ erase_values() [1/2]

template<trivial_copyable_type T>
value_iterator sparrow::details::trivial_copyable_data_access< T, self_type >::erase_values ( const_value_iterator pos,
size_t count )
inlineconstexprprotected

Definition at line 138 of file trivial_copyable_data_access.hpp.

◆ erase_values() [2/2]

template<trivial_copyable_type T>
value_iterator sparrow::details::trivial_copyable_data_access< T, self_type >::erase_values ( size_t idx,
size_t count )
inlineconstexprprotected

Definition at line 155 of file trivial_copyable_data_access.hpp.

◆ insert_value() [1/2]

template<trivial_copyable_type T>
value_iterator sparrow::details::trivial_copyable_data_access< T, self_type >::insert_value ( const_value_iterator pos,
T value,
size_t count )
inlineconstexprprotected

Definition at line 95 of file trivial_copyable_data_access.hpp.

◆ insert_value() [2/2]

template<trivial_copyable_type T>
value_iterator sparrow::details::trivial_copyable_data_access< T, self_type >::insert_value ( size_t idx,
T value,
size_t count )
inlineconstexprprotected

Definition at line 107 of file trivial_copyable_data_access.hpp.

◆ insert_values() [1/2]

template<trivial_copyable_type T>
value_iterator sparrow::details::trivial_copyable_data_access< T, self_type >::insert_values ( const_value_iterator pos,
InputIt first,
InputIt last )
inlineconstexprprotected

Definition at line 117 of file trivial_copyable_data_access.hpp.

◆ insert_values() [2/2]

template<trivial_copyable_type T>
value_iterator sparrow::details::trivial_copyable_data_access< T, self_type >::insert_values ( size_t idx,
InputIt first,
InputIt last )
inlineconstexprprotected

Definition at line 130 of file trivial_copyable_data_access.hpp.

◆ operator=() [1/2]

template<trivial_copyable_type T>
array_trivial_copyable & sparrow::array_trivial_copyable< T >::operator= ( array_trivial_copyable< T > && rhs)
inlinenoexcept

Definition at line 129 of file array_trivial_copyable.hpp.

◆ operator=() [2/2]

template<trivial_copyable_type T>
array_trivial_copyable< T > & sparrow::array_trivial_copyable< T >::operator= ( const array_trivial_copyable< T > & rhs)

Definition at line 231 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

◆ resize_values()

template<trivial_copyable_type T>
void sparrow::details::trivial_copyable_data_access< T, self_type >::resize_values ( size_t new_length,
const T & value )
inlineconstexprprotected

Definition at line 89 of file trivial_copyable_data_access.hpp.

◆ value() [1/2]

template<trivial_copyable_type T>
T & sparrow::details::trivial_copyable_data_access< T, self_type >::value ( size_t i)
inlinenodiscardconstexprprotected

Definition at line 71 of file trivial_copyable_data_access.hpp.

Here is the caller graph for this function:

◆ value() [2/2]

template<trivial_copyable_type T>
const T & sparrow::details::trivial_copyable_data_access< T, self_type >::value ( size_t i) const
inlinenodiscardconstexprprotected

Definition at line 77 of file trivial_copyable_data_access.hpp.

◆ value_begin()

template<trivial_copyable_type T>
auto sparrow::array_trivial_copyable< T >::value_begin ( )
protected

Definition at line 238 of file array_trivial_copyable.hpp.

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

◆ value_cbegin()

template<trivial_copyable_type T>
auto sparrow::array_trivial_copyable< T >::value_cbegin ( ) const
protected

Definition at line 250 of file array_trivial_copyable.hpp.

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

◆ value_cend()

template<trivial_copyable_type T>
auto sparrow::array_trivial_copyable< T >::value_cend ( ) const
protected

Definition at line 256 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

◆ value_end()

template<trivial_copyable_type T>
auto sparrow::array_trivial_copyable< T >::value_end ( )
protected

Definition at line 244 of file array_trivial_copyable.hpp.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ run_end_encoded_array

template<trivial_copyable_type T>
friend class run_end_encoded_array
friend

Definition at line 206 of file array_trivial_copyable.hpp.

Member Data Documentation

◆ base_type

template<trivial_copyable_type T>
friend sparrow::array_trivial_copyable< T >::base_type
protected

Definition at line 207 of file array_trivial_copyable.hpp.

◆ DATA_BUFFER_INDEX

template<trivial_copyable_type T>
size_type sparrow::array_trivial_copyable< T >::DATA_BUFFER_INDEX = 1
staticconstexprprotected

Definition at line 204 of file array_trivial_copyable.hpp.


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