1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:37:34 +00:00

LibCore: Make DateTime more easily debuggable

In particular, implement operator== and AK::Formatter.
This commit is contained in:
Ben Wiederhake 2022-09-12 13:26:02 +02:00 committed by Andreas Kling
parent 44ab11fdab
commit e8ce0f0eba

View file

@ -39,6 +39,7 @@ public:
static Optional<DateTime> parse(StringView format, DeprecatedString const& string); static Optional<DateTime> parse(StringView format, DeprecatedString const& string);
bool operator<(DateTime const& other) const { return m_timestamp < other.m_timestamp; } bool operator<(DateTime const& other) const { return m_timestamp < other.m_timestamp; }
bool operator==(DateTime const& other) const { return m_timestamp == other.m_timestamp; }
private: private:
time_t m_timestamp { 0 }; time_t m_timestamp { 0 };
@ -52,6 +53,19 @@ private:
} }
namespace AK {
template<>
struct Formatter<Core::DateTime> : StandardFormatter {
ErrorOr<void> format(FormatBuilder& builder, Core::DateTime const& value)
{
// Can't use DateTime::to_string() here: It doesn't propagate allocation failure.
return builder.builder().try_appendff("{:04d}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}"sv,
value.year(), value.month(), value.day(),
value.hour(), value.minute(), value.second());
}
};
}
namespace IPC { namespace IPC {
template<> template<>