collection_resolver progress
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "matador/utils/types.hpp"
|
||||
#include "matador/utils/result.hpp"
|
||||
#include "matador/utils/os.hpp"
|
||||
|
||||
#include <array>
|
||||
#include <charconv>
|
||||
@@ -467,18 +468,20 @@ template < typename DestType>
|
||||
result<DestType, conversion_error> to(const timestamp_type_t &source, std::enable_if_t<std::is_same_v<time_type_t, DestType>>* = nullptr) {
|
||||
const std::time_t tt = std::chrono::system_clock::to_time_t(source);
|
||||
|
||||
const std::tm* result = std::localtime(&tt);
|
||||
std::tm result;
|
||||
matador::os::localtime(tt, result);
|
||||
|
||||
return ok(time_type_t{static_cast<uint8_t>(result->tm_hour), static_cast<uint8_t>(result->tm_min), static_cast<uint8_t>(result->tm_sec)});
|
||||
return ok(time_type_t{static_cast<uint8_t>(result.tm_hour), static_cast<uint8_t>(result.tm_min), static_cast<uint8_t>(result.tm_sec)});
|
||||
}
|
||||
|
||||
template < typename DestType>
|
||||
result<DestType, conversion_error> to(const timestamp_type_t &source, std::enable_if_t<std::is_same_v<date_type_t, DestType>>* = nullptr) {
|
||||
const std::time_t tt = std::chrono::system_clock::to_time_t(source);
|
||||
|
||||
const std::tm* result = std::localtime(&tt);
|
||||
std::tm result;
|
||||
matador::os::localtime(tt, result);
|
||||
|
||||
return ok(date_type_t{result->tm_year + 1900, static_cast<uint8_t>(result->tm_mon + 1), static_cast<uint8_t>(result->tm_mday)});
|
||||
return ok(date_type_t{result.tm_year + 1900, static_cast<uint8_t>(result.tm_mon + 1), static_cast<uint8_t>(result.tm_mday)});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -98,6 +98,14 @@ int sprintf(char* str, size_t s, const char* format, ARGS const&... args)
|
||||
|
||||
MATADOR_UTILS_API char* strerror(int err, char* errbuf, size_t bufsize);
|
||||
|
||||
/**
|
||||
* Multi platform version of localtime
|
||||
*
|
||||
* @param in time_t value to be converted
|
||||
* @param out converted value
|
||||
*/
|
||||
MATADOR_UTILS_API void localtime(const time_t &in, struct tm &out);
|
||||
|
||||
/// @endcond
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user