diff --git a/nano/lib/logging.hpp b/nano/lib/logging.hpp index 14e6e2fc3..ae9563300 100644 --- a/nano/lib/logging.hpp +++ b/nano/lib/logging.hpp @@ -32,12 +32,58 @@ using logger_id = std::pair; std::string to_string (logger_id); logger_id parse_logger_id (std::string const &); +} +// Time helpers +namespace nano::log +{ template auto microseconds (std::chrono::time_point time) { return std::chrono::duration_cast (time.time_since_epoch ()).count (); } + +template +auto microseconds (Duration duration) +{ + return std::chrono::duration_cast (duration).count (); +} + +template +auto milliseconds (std::chrono::time_point time) +{ + return std::chrono::duration_cast (time.time_since_epoch ()).count (); +} + +template +auto milliseconds (Duration duration) +{ + return std::chrono::duration_cast (duration).count (); +} + +template +auto seconds (std::chrono::time_point time) +{ + return std::chrono::duration_cast (time.time_since_epoch ()).count (); +} + +template +auto seconds (Duration duration) +{ + return std::chrono::duration_cast (duration).count (); +} + +template +auto milliseconds_delta (std::chrono::time_point time, std::chrono::time_point now = Clock::now ()) +{ + return std::chrono::duration_cast (now - time).count (); +} + +template +auto seconds_delta (std::chrono::time_point time, std::chrono::time_point now = Clock::now ()) +{ + return std::chrono::duration_cast (now - time).count (); +} } namespace nano