light/modules/time/public/timer.hpp

28 lines
490 B
C++
Raw Normal View History

2025-07-05 13:28:41 +03:30
#pragma once
#include <chrono>
2025-07-11 00:05:48 +03:30
namespace lt {
2025-07-05 13:28:41 +03:30
2025-07-15 15:53:30 +03:30
/** Simple timer class to keep track of the elapsed time. */
2025-07-05 13:28:41 +03:30
class Timer
{
public:
using Clock = std::chrono::steady_clock;
2025-07-05 13:28:41 +03:30
2025-07-15 15:53:30 +03:30
using Duration = std::chrono::duration<double>;
using Timepoint = std::chrono::time_point<std::chrono::steady_clock>;
Timer(Timepoint start = Clock::now());
2025-07-07 15:13:05 +03:30
void reset(Timepoint start = Clock::now());
2025-07-05 13:28:41 +03:30
[[nodiscard]] auto elapsed_time() const -> Duration;
2025-07-05 16:07:51 +03:30
private:
Timepoint m_start;
2025-07-05 13:28:41 +03:30
};
2025-07-11 00:05:48 +03:30
} // namespace lt