blob: efd3d562bf214de8785e2f07cbb0231535a7fd8e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#pragma once
#include <library/cpp/yt/misc/guid.h>
#include <util/datetime/base.h>
#include <util/generic/strbuf.h>
#include <string>
namespace NYT::NDetail {
////////////////////////////////////////////////////////////////////////////////
size_t FloatToStringWithNanInf(double value, char* buf, size_t size);
////////////////////////////////////////////////////////////////////////////////
bool IsBinaryYson(TStringBuf str);
////////////////////////////////////////////////////////////////////////////////
template <class T>
std::string ConvertToTextYsonString(const T& value) = delete;
template <class T>
T ConvertFromTextYsonString(TStringBuf str) = delete;
////////////////////////////////////////////////////////////////////////////////
template <>
std::string ConvertToTextYsonString<i8>(const i8& value);
template <>
std::string ConvertToTextYsonString<i32>(const i32& value);
template <>
std::string ConvertToTextYsonString<i64>(const i64& value);
template <>
std::string ConvertToTextYsonString<ui8>(const ui8& value);
template <>
std::string ConvertToTextYsonString<ui32>(const ui32& value);
template <>
std::string ConvertToTextYsonString<ui64>(const ui64& value);
template <>
std::string ConvertToTextYsonString<TStringBuf>(const TStringBuf& value);
template <>
std::string ConvertToTextYsonString<float>(const float& value);
template <>
std::string ConvertToTextYsonString<double>(const double& value);
template <>
std::string ConvertToTextYsonString<bool>(const bool& value);
template <>
std::string ConvertToTextYsonString<TInstant>(const TInstant& value);
template <>
std::string ConvertToTextYsonString<TDuration>(const TDuration& value);
template <>
std::string ConvertToTextYsonString<TGuid>(const TGuid& value);
////////////////////////////////////////////////////////////////////////////////
template <>
i8 ConvertFromTextYsonString<i8>(TStringBuf str);
template <>
i32 ConvertFromTextYsonString<i32>(TStringBuf str);
template <>
i64 ConvertFromTextYsonString<i64>(TStringBuf str);
template <>
ui8 ConvertFromTextYsonString<ui8>(TStringBuf str);
template <>
ui32 ConvertFromTextYsonString<ui32>(TStringBuf str);
template <>
ui64 ConvertFromTextYsonString<ui64>(TStringBuf str);
template <>
TString ConvertFromTextYsonString<TString>(TStringBuf str);
template <>
std::string ConvertFromTextYsonString<std::string>(TStringBuf str);
template <>
float ConvertFromTextYsonString<float>(TStringBuf str);
template <>
double ConvertFromTextYsonString<double>(TStringBuf str);
template <>
bool ConvertFromTextYsonString<bool>(TStringBuf str);
template <>
TInstant ConvertFromTextYsonString<TInstant>(TStringBuf str);
template <>
TDuration ConvertFromTextYsonString<TDuration>(TStringBuf str);
template <>
TGuid ConvertFromTextYsonString<TGuid>(TStringBuf str);
////////////////////////////////////////////////////////////////////////////////
} // namespace NYT::NDetail
|