30 typename T::inner_value_type;
47 template <
class ARRAY>
56 template <
class ARRAY>
59 [[nodiscard]]
static constexpr bool get() noexcept
121 [[nodiscard]]
constexpr enum data_type get_data_type() const noexcept;
127 [[nodiscard]] wrapper_ptr
clone_impl() const override;
129 using storage_type =
std::variant<
value_ptr<T>,
std::shared_ptr<T>, T*>;
130 storage_type m_storage;
197 , m_storage(
std::move(ar))
198 , p_array(
std::get<
std::shared_ptr<T>>(m_storage).get())
215 constexpr enum data_type array_wrapper_impl<T>::get_data_type() const noexcept
223 , m_storage(value_ptr<T>(T(rhs.get_wrapped())))
228 using U = std::decay_t<
decltype(arg)>;
229 if constexpr (std::is_same_v<U, T*>)
array_wrapper_impl(T &&ar)
wrapper_ptr clone_impl() const override
~array_wrapper_impl() override=default
constexpr arrow_proxy & get_arrow_proxy_impl() override
constexpr bool is_dictionary_impl() const noexcept override
Base class for array type erasure.
wrapper_ptr clone() const
std::unique_ptr< array_wrapper > wrapper_ptr
array_wrapper & operator=(array_wrapper &&)=delete
array_wrapper & operator=(const array_wrapper &)=delete
virtual ~array_wrapper()=default
virtual arrow_proxy & get_arrow_proxy_impl()=0
virtual bool is_dictionary_impl() const =0
constexpr bool is_dictionary() const
constexpr arrow_proxy & get_arrow_proxy()
array_wrapper(array_wrapper &&)=delete
constexpr enum data_type data_type() const noexcept
virtual wrapper_ptr clone_impl() const =0
Proxy class over ArrowArray and ArrowSchema.
static const sparrow::arrow_proxy & get_arrow_proxy(const ARRAY &array)
A value_ptr is a smart pointer that behaves like a value.
T & unwrap_array(array_wrapper &)
visit_result_t< F > visit(F &&func, const array_wrapper &ar)
data_type
Runtime identifier of arrow data types, usually associated with raw bytes with the associated value.
Provides compile-time information about Arrow data types.
static constexpr sparrow::data_type get() noexcept
static constexpr bool get() noexcept