#pragma once #include #include #include namespace ext { template std::string to_string(const std::chrono::time_point & tp) { return DateLUT::instance().timeToString(std::chrono::system_clock::to_time_t(tp)); } template > std::string to_string(const std::chrono::duration & dur) { auto seconds_as_int = std::chrono::duration_cast(dur); if (seconds_as_int == dur) return std::to_string(seconds_as_int.count()) + "s"; auto seconds_as_double = std::chrono::duration_cast>(dur); return std::to_string(seconds_as_double.count()) + "s"; } template std::ostream & operator<<(std::ostream & o, const std::chrono::time_point & tp) { return o << to_string(tp); } template > std::ostream & operator<<(std::ostream & o, const std::chrono::duration & dur) { return o << to_string(dur); } }