dawn::wire::client: Make ObjectTypeToTypeEnum a template variable.

Bug: dawn:1451
Change-Id: I21cba4b245b2b574104471da973000d552f1c7de
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/93604
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/generator/templates/dawn/wire/client/ApiObjects.h b/generator/templates/dawn/wire/client/ApiObjects.h
index 8c1729d..719f893 100644
--- a/generator/templates/dawn/wire/client/ApiObjects.h
+++ b/generator/templates/dawn/wire/client/ApiObjects.h
@@ -20,10 +20,8 @@
 
 namespace dawn::wire::client {
 
-    template <typename T>
-    struct ObjectTypeToTypeEnum {
-        static constexpr ObjectType value = static_cast<ObjectType>(-1);
-    };
+    template<typename T>
+    static constexpr ObjectType ObjectTypeToTypeEnum = static_cast<ObjectType>(-1);
 
     {% for type in by_category["object"] %}
         {% set Type = type.name.CamelCase() %}
@@ -43,9 +41,7 @@
         }
 
         template <>
-        struct ObjectTypeToTypeEnum<{{Type}}> {
-            static constexpr ObjectType value = ObjectType::{{Type}};
-        };
+        static constexpr ObjectType ObjectTypeToTypeEnum<{{Type}}> = ObjectType::{{Type}};
 
     {% endfor %}
 }  // namespace dawn::wire::client
diff --git a/src/dawn/wire/client/Client.h b/src/dawn/wire/client/Client.h
index ad5769a..d7e29d3 100644
--- a/src/dawn/wire/client/Client.h
+++ b/src/dawn/wire/client/Client.h
@@ -44,7 +44,7 @@
     //   T::T(ObjectBaseParams, arg1, arg2, arg3)
     template <typename T, typename... Args>
     T* Make(Args&&... args) {
-        constexpr ObjectType type = ObjectTypeToTypeEnum<T>::value;
+        constexpr ObjectType type = ObjectTypeToTypeEnum<T>;
 
         ObjectBaseParams params = {this, mObjectStores[type].ReserveHandle()};
         T* object = new T(params, std::forward<Args>(args)...);
@@ -56,13 +56,13 @@
 
     template <typename T>
     void Free(T* obj) {
-        Free(obj, ObjectTypeToTypeEnum<T>::value);
+        Free(obj, ObjectTypeToTypeEnum<T>);
     }
     void Free(ObjectBase* obj, ObjectType type);
 
     template <typename T>
     T* Get(ObjectId id) {
-        return static_cast<T*>(mObjectStores[ObjectTypeToTypeEnum<T>::value].Get(id));
+        return static_cast<T*>(mObjectStores[ObjectTypeToTypeEnum<T>].Get(id));
     }
 
     // ChunkedCommandHandler implementation