#pragma once #include #include #include #include namespace NYT::NDetail { //////////////////////////////////////////////////////////////////////////////// size_t FloatToStringWithNanInf(double value, char* buf, size_t size); //////////////////////////////////////////////////////////////////////////////// bool IsBinaryYson(TStringBuf str); //////////////////////////////////////////////////////////////////////////////// template std::string ConvertToTextYsonString(const T& value) = delete; template T ConvertFromTextYsonString(TStringBuf str) = delete; //////////////////////////////////////////////////////////////////////////////// template <> std::string ConvertToTextYsonString(const i8& value); template <> std::string ConvertToTextYsonString(const i32& value); template <> std::string ConvertToTextYsonString(const i64& value); template <> std::string ConvertToTextYsonString(const ui8& value); template <> std::string ConvertToTextYsonString(const ui32& value); template <> std::string ConvertToTextYsonString(const ui64& value); template <> std::string ConvertToTextYsonString(const TStringBuf& value); template <> std::string ConvertToTextYsonString(const float& value); template <> std::string ConvertToTextYsonString(const double& value); template <> std::string ConvertToTextYsonString(const bool& value); template <> std::string ConvertToTextYsonString(const TInstant& value); template <> std::string ConvertToTextYsonString(const TDuration& value); template <> std::string ConvertToTextYsonString(const TGuid& value); //////////////////////////////////////////////////////////////////////////////// template <> i8 ConvertFromTextYsonString(TStringBuf str); template <> i32 ConvertFromTextYsonString(TStringBuf str); template <> i64 ConvertFromTextYsonString(TStringBuf str); template <> ui8 ConvertFromTextYsonString(TStringBuf str); template <> ui32 ConvertFromTextYsonString(TStringBuf str); template <> ui64 ConvertFromTextYsonString(TStringBuf str); template <> TString ConvertFromTextYsonString(TStringBuf str); template <> std::string ConvertFromTextYsonString(TStringBuf str); template <> float ConvertFromTextYsonString(TStringBuf str); template <> double ConvertFromTextYsonString(TStringBuf str); template <> bool ConvertFromTextYsonString(TStringBuf str); template <> TInstant ConvertFromTextYsonString(TStringBuf str); template <> TDuration ConvertFromTextYsonString(TStringBuf str); template <> TGuid ConvertFromTextYsonString(TStringBuf str); //////////////////////////////////////////////////////////////////////////////// } // namespace NYT::NDetail