#ifndef MBGL_UTIL_CHRONO #define MBGL_UTIL_CHRONO #include namespace mbgl { using Clock = std::chrono::steady_clock; using SystemClock = std::chrono::system_clock; using Seconds = std::chrono::seconds; using Milliseconds = std::chrono::milliseconds; using TimePoint = Clock::time_point; using Duration = Clock::duration; using SystemTimePoint = SystemClock::time_point; using SystemDuration = SystemClock::duration; template _Duration toDuration(std::chrono::time_point<_Clock, _Duration> time_point) { return time_point.time_since_epoch(); } template Seconds asSeconds(_Duration duration) { return std::chrono::duration_cast(duration); } template Seconds toSeconds(std::chrono::time_point<_Clock, _Duration> time_point) { return asSeconds(toDuration<_Clock, _Duration>(time_point)); } template Milliseconds asMilliseconds(_Duration duration) { return std::chrono::duration_cast(duration); } template Milliseconds toMilliseconds(std::chrono::time_point<_Clock, _Duration> time_point) { return asMilliseconds(toDuration<_Clock, _Duration>(time_point)); } } #endif