sparrow-ipc 0.3.0
Loading...
Searching...
No Matches
deserialize_time_related_arrays.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include <sparrow/arrow_interface/arrow_array_schema_proxy.hpp>
7#include <sparrow/date_array.hpp>
8#include <sparrow/time_array.hpp>
9#include <sparrow/timestamp_array.hpp>
10#include <sparrow/timestamp_without_timezone_array.hpp>
11
14
15namespace sparrow_ipc
16{
17 template <typename T>
18 [[nodiscard]] sparrow::date_array<T> deserialize_date_array(
20 const field_descriptor& field_desc
21 )
22 {
24 context,
25 field_desc,
26 std::nullopt
27 );
28 }
29
30 template <typename T>
31 [[nodiscard]] sparrow::timestamp_array<T> deserialize_timestamp_array(
33 const field_descriptor& field_desc,
34 const std::string& timezone
35 )
36 {
37 std::string format = std::string(sparrow::data_type_to_format(
38 sparrow::detail::get_data_type_from_array<sparrow::timestamp_array<T>>::get()
39 )) + timezone;
40
42 context,
43 field_desc,
44 std::move(format)
45 );
46 }
47
48 template <typename T>
49 [[nodiscard]] sparrow::timestamp_without_timezone_array<T> deserialize_timestamp_without_timezone_array(
51 const field_descriptor& field_desc
52 )
53 {
55 context,
56 field_desc,
57 std::nullopt
58 );
59 }
60
61 template <typename T>
62 [[nodiscard]] sparrow::time_array<T> deserialize_time_array(
64 const field_descriptor& field_desc
65 )
66 {
68 context,
69 field_desc,
70 std::nullopt
71 );
72 }
73}
ArrayType< T > deserialize_simple_array(deserialization_context &context, const field_descriptor &field_desc, std::optional< std::string > format_override=std::nullopt)
Generic implementation for deserializing non-owning arrays with simple layout.
sparrow::timestamp_without_timezone_array< T > deserialize_timestamp_without_timezone_array(deserialization_context &context, const field_descriptor &field_desc)
sparrow::time_array< T > deserialize_time_array(deserialization_context &context, const field_descriptor &field_desc)
sparrow::date_array< T > deserialize_date_array(deserialization_context &context, const field_descriptor &field_desc)
sparrow::timestamp_array< T > deserialize_timestamp_array(deserialization_context &context, const field_descriptor &field_desc, const std::string &timezone)
Encapsulates the context required for deserialization.
Encapsulates the description of a field to be deserialized.