|
@@ -6,6 +6,7 @@
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
+#include <AK/Concepts.h>
|
|
|
#include <AK/Forward.h>
|
|
|
#include <AK/HashFunctions.h>
|
|
|
|
|
@@ -41,6 +42,12 @@ requires(IsPointer<T>) struct Traits<T> : public GenericTraits<T> {
|
|
|
static constexpr bool is_trivial() { return true; }
|
|
|
};
|
|
|
|
|
|
+template<Enum T>
|
|
|
+struct Traits<T> : public GenericTraits<T> {
|
|
|
+ static unsigned hash(T value) { return Traits<UnderlyingType<T>>::hash(to_underlying(value)); }
|
|
|
+ static constexpr bool is_trivial() { return Traits<UnderlyingType<T>>::is_trivial(); }
|
|
|
+};
|
|
|
+
|
|
|
}
|
|
|
|
|
|
using AK::GenericTraits;
|