Преглед на файлове

AK: Add formatter for DistinctNumeric

Andreas Kling преди 4 години
родител
ревизия
e00f519cdd
променени са 2 файла, в които са добавени 12 реда и са изтрити 1 реда
  1. 10 0
      AK/DistinctNumeric.h
  2. 2 1
      AK/Tests/TestDistinctNumeric.cpp

+ 10 - 0
AK/DistinctNumeric.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2020, Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
+ * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,6 +27,7 @@
 
 #pragma once
 
+#include <AK/Format.h>
 #include <AK/Traits.h>
 #include <AK/Types.h>
 
@@ -299,6 +301,14 @@ private:
     T m_value {};
 };
 
+template<typename T, typename X, bool Incr, bool Cmp, bool Bool, bool Flags, bool Shift, bool Arith>
+struct Formatter<DistinctNumeric<T, X, Incr, Cmp, Bool, Flags, Shift, Arith>> : Formatter<FormatString> {
+    void format(FormatBuilder& builder, DistinctNumeric<T, X, Incr, Cmp, Bool, Flags, Shift, Arith> value)
+    {
+        return Formatter<FormatString>::format(builder, "{}", value.value());
+    }
+};
+
 // TODO: When 'consteval' sufficiently-well supported by host compilers, try to
 // provide a more usable interface like this one:
 // https://gist.github.com/alimpfard/a3b750e8c3a2f44fb3a2d32038968ddf

+ 2 - 1
AK/Tests/TestDistinctNumeric.cpp

@@ -24,9 +24,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <AK/DistinctNumeric.h>
 #include <AK/TestSuite.h>
 
+#include <AK/DistinctNumeric.h>
+
 template<typename T>
 class ForType {
 public: