sparrow
2.4.0
C++20 idiomatic APIs for the Apache Arrow Columnar Format
Toggle main menu visibility
Loading...
Searching...
No Matches
date_array.hpp
Go to the documentation of this file.
1
// Copyright 2024 Man Group Operations Limited
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or mplied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#pragma once
16
17
#include "
sparrow/layout/date_types.hpp
"
18
#include "
sparrow/layout/primitive_array_impl.hpp
"
19
20
// tdD : std::chrono::seconds
21
// tdm : std::chrono::milliseconds
22
23
namespace
sparrow
24
{
25
using
date_types_t
=
mpl::typelist<date_days, date_milliseconds>
;
26
27
template
<
typename
T>
28
concept
date_type
=
mpl::contains<date_types_t, T>
();
29
30
namespace
detail
31
{
32
template
<>
33
struct
primitive_data_traits
<
sparrow
::
date_days
>
34
{
35
static
constexpr
sparrow::data_type
type_id
=
sparrow::data_type::DATE_DAYS
;
36
};
37
38
template
<>
39
struct
primitive_data_traits
<
sparrow
::
date_milliseconds
>
40
{
41
static
constexpr
sparrow::data_type
type_id
=
sparrow::data_type::DATE_MILLISECONDS
;
42
};
43
}
44
57
template
<date_type T>
58
using
date_array
=
primitive_array_impl<T>
;
59
64
using
date_days_array
=
date_array<date_days>
;
69
using
date_milliseconds_array
=
date_array<date_milliseconds>
;
70
71
template
<
class
T>
72
struct
is_date_array
: std::false_type
73
{
74
};
75
76
template
<
class
T>
77
struct
is_date_array
<
date_array
<T>> : std::true_type
78
{
79
};
80
84
template
<
class
T>
85
constexpr
bool
is_date_array_v
=
is_date_array<T>::value
;
86
}
sparrow::primitive_array_impl
Definition
primitive_array_impl.hpp:125
sparrow::date_type
Definition
date_array.hpp:28
date_types.hpp
sparrow::detail
Definition
dynamic_bitset.hpp:391
sparrow::mpl::contains
consteval bool contains()
Checks if a typelist contains a specific type.
Definition
mp_utils.hpp:633
sparrow
Definition
array.hpp:21
sparrow::is_date_array_v
constexpr bool is_date_array_v
Checks whether T is a date_array type.
Definition
date_array.hpp:85
sparrow::date_milliseconds_array
date_array< date_milliseconds > date_milliseconds_array
A date array for date_milliseconds values.
Definition
date_array.hpp:69
sparrow::date_types_t
mpl::typelist< date_days, date_milliseconds > date_types_t
Definition
date_array.hpp:25
sparrow::date_array
primitive_array_impl< T > date_array
Array of std::chrono::duration values.
Definition
date_array.hpp:58
sparrow::date_days_array
date_array< date_days > date_days_array
A date array for date_days values.
Definition
date_array.hpp:64
sparrow::date_milliseconds
std::chrono::time_point< std::chrono::system_clock, std::chrono::milliseconds > date_milliseconds
Definition
date_types.hpp:24
sparrow::data_type
data_type
Runtime identifier of arrow data types, usually associated with raw bytes with the associated value.
Definition
data_type.hpp:177
sparrow::data_type::DATE_MILLISECONDS
@ DATE_MILLISECONDS
Definition
data_type.hpp:215
sparrow::data_type::DATE_DAYS
@ DATE_DAYS
Definition
data_type.hpp:214
sparrow::date_days
std::chrono::time_point< std::chrono::system_clock, chrono::days > date_days
Definition
date_types.hpp:23
primitive_array_impl.hpp
sparrow::detail::primitive_data_traits< sparrow::date_days >::type_id
static constexpr sparrow::data_type type_id
Definition
date_array.hpp:35
sparrow::detail::primitive_data_traits< sparrow::date_milliseconds >::type_id
static constexpr sparrow::data_type type_id
Definition
date_array.hpp:41
sparrow::detail::primitive_data_traits
Definition
primitive_array_impl.hpp:69
sparrow::is_date_array
Definition
date_array.hpp:73
sparrow::mpl::typelist
A sequence of types used for metaprogramming operations.
Definition
mp_utils.hpp:123
sparrow
date_array.hpp
Generated by
1.17.0