From f7025435b227b9124394799dbb817a39aba986d6 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Sun, 1 Jan 2023 13:16:23 -0700 Subject: [PATCH] AK: Add user defined literals for Time for ns, us, ms, and sec We can use these to simplify Time constants throughout the codebase, turning Time::from_milliseconds(10) into 10_ms, for example. --- AK/Time.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/AK/Time.h b/AK/Time.h index 6d6ad16763..a9b4037458 100644 --- a/AK/Time.h +++ b/AK/Time.h @@ -383,6 +383,16 @@ inline bool operator!=(T const& a, T const& b) return a.tv_sec != b.tv_sec || a.tv_nsec != b.tv_nsec; } +// To use these, add a ``using namespace AK::TimeLiterals`` at block or file scope +namespace TimeLiterals { + +constexpr Time operator""_ns(unsigned long long nanoseconds) { return Time::from_nanoseconds(static_cast(nanoseconds)); } +constexpr Time operator""_us(unsigned long long microseconds) { return Time::from_microseconds(static_cast(microseconds)); } +constexpr Time operator""_ms(unsigned long long milliseconds) { return Time::from_milliseconds(static_cast(milliseconds)); } +constexpr Time operator""_sec(unsigned long long seconds) { return Time::from_seconds(static_cast(seconds)); } + +} + } #if USING_AK_GLOBALLY