userver: userver/chaotic/io/userver/decimal64/decimal.hpp Source File
Loading...
Searching...
No Matches
decimal.hpp
1#pragma once
2
3#include <userver/chaotic/convert.hpp>
4#include <userver/decimal64/decimal64.hpp>
5
6USERVER_NAMESPACE_BEGIN
7
8namespace chaotic::convert {
9
10template <int Prec, typename RoundPolicy>
11std::string Convert(const decimal64::Decimal<Prec, RoundPolicy>& value,
12 chaotic::convert::To<std::string>) {
13 return ToString(value);
14}
15
16template <int Prec, typename RoundPolicy>
17decimal64::Decimal<Prec, RoundPolicy> Convert(
18 const std::string& str,
19 chaotic::convert::To<decimal64::Decimal<Prec, RoundPolicy>>) {
20 return decimal64::Decimal<Prec, RoundPolicy>(str);
21}
22
23template <int Prec, typename RoundPolicy>
24decimal64::Decimal<Prec, RoundPolicy> Convert(
25 const int& str,
26 chaotic::convert::To<decimal64::Decimal<Prec, RoundPolicy>>) {
27 return decimal64::Decimal<Prec, RoundPolicy>(str);
28}
29
30template <int Prec, typename RoundPolicy>
31int Convert(const decimal64::Decimal<Prec, RoundPolicy>& value,
32 chaotic::convert::To<int>) {
33 return value.ToInteger();
34}
35
36} // namespace chaotic::convert
37
38USERVER_NAMESPACE_END