| 56 | } |
| 57 | |
| 58 | std::string openhd::util::time_readable( |
| 59 | const std::chrono::steady_clock::duration& dur) { |
| 60 | const auto durAbsolute = std::chrono::abs(dur); |
| 61 | if (durAbsolute >= std::chrono::seconds(1)) { |
| 62 | // More than one second, print as decimal with ms resolution. |
| 63 | const auto ms = |
| 64 | std::chrono::duration_cast<std::chrono::milliseconds>(dur).count(); |
| 65 | return std::to_string(static_cast<float>(ms) / 1000.0f) + "s"; |
| 66 | } |
| 67 | if (durAbsolute >= std::chrono::milliseconds(1)) { |
| 68 | // More than one millisecond, print as decimal with us resolution |
| 69 | const auto us = |
| 70 | std::chrono::duration_cast<std::chrono::microseconds>(dur).count(); |
| 71 | return std::to_string(static_cast<float>(us) / 1000.0f) + "ms"; |
| 72 | } |
| 73 | if (durAbsolute >= std::chrono::microseconds(1)) { |
| 74 | // More than one microsecond, print as decimal with ns resolution |
| 75 | const auto ns = |
| 76 | std::chrono::duration_cast<std::chrono::nanoseconds>(dur).count(); |
| 77 | return std::to_string(static_cast<float>(ns) / 1000.0f) + "us"; |
| 78 | } |
| 79 | const auto ns = |
| 80 | std::chrono::duration_cast<std::chrono::nanoseconds>(dur).count(); |
| 81 | return std::to_string(ns) + "ns"; |
| 82 | } |
| 83 | |
| 84 | std::string openhd::util::time_readable_ns(uint64_t nanoseconds) { |
| 85 | return time_readable(std::chrono::nanoseconds(nanoseconds)); |
nothing calls this directly
no test coverage detected