#ifndef UTIL_TIMEUTIL_HPP_ #define UTIL_TIMEUTIL_HPP_ #include "../typedefs.hpp" #include namespace timeutil { class Timer { std::chrono::high_resolution_clock::time_point start; public: Timer(); int64_t stop(); }; /** * Timer that stops and prints time when destructor called * @example: * { // some scope (custom, function, if/else, cycle etc.) * timeutil::ScopeLogTimer scopeclock(); * ... * } */ class ScopeLogTimer : public Timer{ long long scopeid_; public: ScopeLogTimer(long long id); ~ScopeLogTimer(); }; inline constexpr float time_value(float hour, float minute, float second) { return (hour + (minute + second / 60.0f) / 60.0f) / 24.0f; } void from_value(float value, int& hour, int& minute, int& second); } #endif // UTIL_TIMEUTIL_HPP_