Explorar el Código

LibCore: Make DateTime more easily debuggable

In particular, implement operator== and AK::Formatter.
Ben Wiederhake hace 2 años
padre
commit
e8ce0f0eba
Se han modificado 1 ficheros con 14 adiciones y 0 borrados
  1. 14 0
      Userland/Libraries/LibCore/DateTime.h

+ 14 - 0
Userland/Libraries/LibCore/DateTime.h

@@ -39,6 +39,7 @@ public:
     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; }
 
 private:
     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 {
 
 template<>