sparrow 0.6.0
Loading...
Searching...
No Matches
data_type.hpp File Reference
#include <chrono>
#include <version>
#include "sparrow/layout/temporal/date_types.hpp"
#include "sparrow/layout/temporal/interval_types.hpp"
#include "sparrow/layout/temporal/time_types.hpp"
#include <climits>
#include <concepts>
#include <cstdint>
#include <cstring>
#include <sstream>
#include <string>
#include "sparrow/config/config.hpp"
#include "sparrow/utils/contracts.hpp"
#include "sparrow/utils/decimal.hpp"
#include "sparrow/utils/large_int.hpp"
#include "sparrow/utils/mp_utils.hpp"
#include "sparrow/details/3rdparty/float16_t.hpp"
Include dependency graph for data_type.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sparrow::null_type
 
struct  sparrow::detail::accepts_template< class >
 
class  sparrow::data_descriptor
 
struct  sparrow::impl::get_inner_reference< C, is_const >
 

Namespaces

namespace  sparrow
 
namespace  sparrow::detail
 
namespace  sparrow::impl
 

Concepts

concept  sparrow::is_arrow_base_type
 Matches C++ representation types which are supported by default.
 
concept  sparrow::is_arrow_base_type_extended
 Checks if a type is an extended base type for Arrow.
 
concept  sparrow::is_arrow_traits
 Matches valid and complete arrow_traits specializations for type T.
 
concept  sparrow::has_arrow_type_traits
 Matches types providing valid and complete arrow_traits specialization.
 
concept  sparrow::any_arrow_type
 Matches any type which is one of the base C++ types supported or at least that provides an arrow_traits specialization.
 
concept  sparrow::layout_offset
 

Typedefs

using sparrow::float16_t = numeric::float16_t
 
using sparrow::float32_t = float
 
using sparrow::float64_t = double
 
template<typename Duration, typename TimeZonePtr = const date::time_zone*>
using sparrow::timestamp = date::zoned_time<Duration, TimeZonePtr>
 
using sparrow::byte_t = std::byte
 
using sparrow::all_base_types_t
 C++ types value representation types matching Arrow types.
 
using sparrow::all_base_types_extended_t = mpl::append_t<all_base_types_t, char, std::string_view>
 is arrow base type or arrow compound type (list<T>, struct<T> etc.)
 
template<class T>
using sparrow::get_corresponding_arrow_type_t = std::conditional_t<std::same_as<T, std::string_view>, std::string, T>
 Template alias to get the corresponding Arrow type for a given type.
 
template<has_arrow_type_traits T>
using sparrow::default_layout_t = typename arrow_traits<T>::default_layout
 Binary layout type to use by default for the given C++ representation T of an arrow value.
 
template<class C, bool is_const>
using sparrow::impl::get_inner_reference_t = typename get_inner_reference<C, is_const>::type
 

Enumerations

enum class  sparrow::data_type : uint8_t {
  sparrow::NA = 0 , sparrow::BOOL = 1 , sparrow::UINT8 = 2 , sparrow::INT8 = 3 ,
  sparrow::UINT16 = 4 , sparrow::INT16 = 5 , sparrow::UINT32 = 6 , sparrow::INT32 = 7 ,
  sparrow::UINT64 = 8 , sparrow::INT64 = 9 , sparrow::HALF_FLOAT = 10 , sparrow::FLOAT = 11 ,
  sparrow::DOUBLE = 12 , sparrow::STRING = 13 , sparrow::LARGE_STRING = 14 , sparrow::BINARY = 15 ,
  sparrow::LARGE_BINARY = 16 , sparrow::LIST = 19 , sparrow::LARGE_LIST = 20 , sparrow::LIST_VIEW = 21 ,
  sparrow::LARGE_LIST_VIEW = 22 , sparrow::FIXED_SIZED_LIST = 23 , sparrow::STRUCT = 24 , sparrow::MAP = 25 ,
  sparrow::STRING_VIEW = 26 , sparrow::BINARY_VIEW = 27 , sparrow::DENSE_UNION , sparrow::SPARSE_UNION ,
  sparrow::RUN_ENCODED , sparrow::DECIMAL32 , sparrow::DECIMAL64 , sparrow::DECIMAL128 ,
  sparrow::DECIMAL256 , sparrow::FIXED_WIDTH_BINARY , sparrow::DATE_DAYS , sparrow::DATE_MILLISECONDS ,
  sparrow::TIMESTAMP_SECONDS , sparrow::TIMESTAMP_MILLISECONDS , sparrow::TIMESTAMP_MICROSECONDS , sparrow::TIMESTAMP_NANOSECONDS ,
  sparrow::TIME_SECONDS , sparrow::TIME_MILLISECONDS , sparrow::TIME_MICROSECONDS , sparrow::TIME_NANOSECONDS ,
  sparrow::DURATION_SECONDS , sparrow::DURATION_MILLISECONDS , sparrow::DURATION_MICROSECONDS , sparrow::DURATION_NANOSECONDS ,
  sparrow::INTERVAL_MONTHS , sparrow::INTERVAL_DAYS_TIME , sparrow::INTERVAL_MONTHS_DAYS_NANOSECONDS
}
 Runtime identifier of arrow data types, usually associated with raw bytes with the associated value. More...
 

Functions

bool sparrow::operator== (const null_type &, const null_type &)
 
bool sparrow::all_digits (const std::string_view s)
 
SPARROW_API std::size_t sparrow::num_bytes_for_decimal (const char *format)
 
data_type sparrow::format_to_data_type (std::string_view format)
 
template<std::floating_point T>
requires (sizeof(T) >= 2 && sizeof(T) <= 8)
constexpr data_type sparrow::data_type_from_size (T={})
 
template<std::integral T>
requires (sizeof(T) >= 1 && sizeof(T) <= 8)
constexpr data_type sparrow::data_type_from_size (T={})
 
constexpr std::string_view sparrow::data_type_to_format (data_type type)
 
constexpr bool sparrow::data_type_is_primitive (data_type dt)
 
constexpr bool sparrow::data_type_is_integer (data_type dt)
 
template<has_arrow_type_traits T>
constexpr auto sparrow::arrow_type_id () -> data_type
 
template<has_arrow_type_traits T>
constexpr auto sparrow::arrow_type_id (const T &) -> data_type
 
template<has_arrow_type_traits T>
constexpr std::string_view sparrow::data_type_format_of ()
 

Variables

static constexpr all_base_types_t sparrow::all_base_types
 Type list of every C++ representation types supported by default, in order matching data_type related values.
 
static constexpr all_base_types_extended_t sparrow::all_base_types_extended
 Type list of every C++ representation types supported by default, in order matching data_type related values.