12 using Clock = std::chrono::steady_clock;
21 using Timestamp = std::chrono::time_point<std::chrono::system_clock, Seconds>;
40 #if defined(_MSC_VER) && !defined(__clang__)
41 template <class _Rep, class _Period, std::enable_if_t<std::numeric_limits<_Rep>::is_signed,
int> = 0>
42 _NODISCARD constexpr std::chrono::duration<_Rep, _Period> abs(
const std::chrono::duration<_Rep, _Period> _Dur) noexcept(
43 std::is_arithmetic_v<_Rep>) {
45 return _Dur < std::chrono::duration<_Rep, _Period>::zero() ? std::chrono::duration<_Rep, _Period>::zero() - _Dur : _Dur;
48 template <
class Rep,
class Period,
class = std::enable_if_t<
50 constexpr std::chrono::duration<Rep, Period> abs(std::chrono::duration<Rep, Period> d)
52 return d >= d.zero() ? d : -d;
std::unique_ptr< Expression > string(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::string rfc1123(Timestamp)
std::enable_if_t< std::is_integral_v< T >, T > min(T a, T b)
Timestamp parseTimestamp(const char *)
std::string iso8601(Timestamp)
Clock::time_point TimePoint
std::chrono::steady_clock Clock
std::chrono::milliseconds Milliseconds
std::chrono::seconds Seconds
std::chrono::time_point< std::chrono::system_clock, Seconds > Timestamp