Use WireResult instead of bool in various autogen places.

Change-Id: I29c3baec5b67fdd25781701432771592f62dfa50
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/173565
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/generator/templates/dawn/wire/client/ClientHandlers.cpp b/generator/templates/dawn/wire/client/ClientHandlers.cpp
index 53a8788..5276428 100644
--- a/generator/templates/dawn/wire/client/ClientHandlers.cpp
+++ b/generator/templates/dawn/wire/client/ClientHandlers.cpp
@@ -32,13 +32,9 @@
 
 namespace dawn::wire::client {
     {% for command in cmd_records["return command"] %}
-        bool Client::Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer) {
+        WireResult Client::Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer) {
             Return{{command.name.CamelCase()}}Cmd cmd;
-            WireResult deserializeResult = cmd.Deserialize(deserializeBuffer, &mWireCommandAllocator);
-
-            if (deserializeResult == WireResult::FatalError) {
-                return false;
-            }
+            WIRE_TRY(cmd.Deserialize(deserializeBuffer, &mWireCommandAllocator));
 
             {% for member in command.members if member.handle_type %}
                 {% set Type = member.handle_type.name.CamelCase() %}
@@ -82,19 +78,17 @@
 
             ReturnWireCmd cmdId = *static_cast<const volatile ReturnWireCmd*>(static_cast<const volatile void*>(
                 deserializeBuffer.Buffer() + sizeof(CmdHeader)));
-            bool success = false;
+            WireResult result = WireResult::FatalError;
             switch (cmdId) {
                 {% for command in cmd_records["return command"] %}
                     {% set Suffix = command.name.CamelCase() %}
                     case ReturnWireCmd::{{Suffix}}:
-                        success = Handle{{Suffix}}(&deserializeBuffer);
+                        result = Handle{{Suffix}}(&deserializeBuffer);
                         break;
                 {% endfor %}
-                default:
-                    success = false;
             }
 
-            if (!success) {
+            if (result != WireResult::Success) {
                 return nullptr;
             }
             mWireCommandAllocator.Reset();
diff --git a/generator/templates/dawn/wire/client/ClientPrototypes.inc b/generator/templates/dawn/wire/client/ClientPrototypes.inc
index 1f554a7..12907e1 100644
--- a/generator/templates/dawn/wire/client/ClientPrototypes.inc
+++ b/generator/templates/dawn/wire/client/ClientPrototypes.inc
@@ -27,12 +27,12 @@
 
 //* Return command handlers
 {% for command in cmd_records["return command"] %}
-    bool Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer);
+    WireResult Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer);
 {% endfor %}
 
 //* Return command doers
 {% for command in cmd_records["return command"] %}
-    bool Do{{command.name.CamelCase()}}(
+    WireResult Do{{command.name.CamelCase()}}(
         {%- for member in command.members -%}
             {%- if member.handle_type -%}
                 {{as_wireType(member.handle_type)}} {{as_varName(member.name)}}
diff --git a/src/dawn/wire/client/Adapter.cpp b/src/dawn/wire/client/Adapter.cpp
index fcb3965..3acb249 100644
--- a/src/dawn/wire/client/Adapter.cpp
+++ b/src/dawn/wire/client/Adapter.cpp
@@ -277,16 +277,16 @@
     return {futureIDInternal};
 }
 
-bool Client::DoAdapterRequestDeviceCallback(ObjectHandle eventManager,
-                                            WGPUFuture future,
-                                            WGPURequestDeviceStatus status,
-                                            const char* message,
-                                            const WGPUSupportedLimits* limits,
-                                            uint32_t featuresCount,
-                                            const WGPUFeatureName* features) {
+WireResult Client::DoAdapterRequestDeviceCallback(ObjectHandle eventManager,
+                                                  WGPUFuture future,
+                                                  WGPURequestDeviceStatus status,
+                                                  const char* message,
+                                                  const WGPUSupportedLimits* limits,
+                                                  uint32_t featuresCount,
+                                                  const WGPUFeatureName* features) {
     return GetEventManager(eventManager)
-               .SetFutureReady<RequestDeviceEvent>(future.id, status, message, limits,
-                                                   featuresCount, features) == WireResult::Success;
+        .SetFutureReady<RequestDeviceEvent>(future.id, status, message, limits, featuresCount,
+                                            features);
 }
 
 WGPUInstance Adapter::GetInstance() const {
diff --git a/src/dawn/wire/client/Buffer.cpp b/src/dawn/wire/client/Buffer.cpp
index d602009..af40829 100644
--- a/src/dawn/wire/client/Buffer.cpp
+++ b/src/dawn/wire/client/Buffer.cpp
@@ -389,14 +389,14 @@
     return {futureIDInternal};
 }
 
-bool Client::DoBufferMapAsyncCallback(ObjectHandle eventManager,
-                                      WGPUFuture future,
-                                      WGPUBufferMapAsyncStatus status,
-                                      uint64_t readDataUpdateInfoLength,
-                                      const uint8_t* readDataUpdateInfo) {
+WireResult Client::DoBufferMapAsyncCallback(ObjectHandle eventManager,
+                                            WGPUFuture future,
+                                            WGPUBufferMapAsyncStatus status,
+                                            uint64_t readDataUpdateInfoLength,
+                                            const uint8_t* readDataUpdateInfo) {
     return GetEventManager(eventManager)
-               .SetFutureReady<Buffer::MapAsyncEvent>(future.id, status, readDataUpdateInfoLength,
-                                                      readDataUpdateInfo) == WireResult::Success;
+        .SetFutureReady<Buffer::MapAsyncEvent>(future.id, status, readDataUpdateInfoLength,
+                                               readDataUpdateInfo);
 }
 
 void* Buffer::GetMappedRange(size_t offset, size_t size) {
diff --git a/src/dawn/wire/client/ClientDoers.cpp b/src/dawn/wire/client/ClientDoers.cpp
index c3f49ed4..4f0b053 100644
--- a/src/dawn/wire/client/ClientDoers.cpp
+++ b/src/dawn/wire/client/ClientDoers.cpp
@@ -33,9 +33,9 @@
 
 namespace dawn::wire::client {
 
-bool Client::DoDeviceUncapturedErrorCallback(Device* device,
-                                             WGPUErrorType errorType,
-                                             const char* message) {
+WireResult Client::DoDeviceUncapturedErrorCallback(Device* device,
+                                                   WGPUErrorType errorType,
+                                                   const char* message) {
     switch (errorType) {
         case WGPUErrorType_NoError:
         case WGPUErrorType_Validation:
@@ -45,58 +45,64 @@
         case WGPUErrorType_DeviceLost:
             break;
         default:
-            return false;
+            return WireResult::FatalError;
     }
     if (device == nullptr) {
         // The device might have been deleted or recreated so this isn't an error.
-        return true;
+        return WireResult::Success;
     }
     device->HandleError(errorType, message);
-    return true;
+    return WireResult::Success;
 }
 
-bool Client::DoDeviceLoggingCallback(Device* device,
-                                     WGPULoggingType loggingType,
-                                     const char* message) {
-    if (device == nullptr) {
-        // The device might have been deleted or recreated so this isn't an error.
-        return true;
-    }
-    device->HandleLogging(loggingType, message);
-    return true;
-}
-
-bool Client::DoDeviceLostCallback(Device* device,
-                                  WGPUDeviceLostReason reason,
-                                  char const* message) {
-    if (device == nullptr) {
-        // The device might have been deleted or recreated so this isn't an error.
-        return true;
-    }
-    device->HandleDeviceLost(reason, message);
-    return true;
-}
-
-bool Client::DoDevicePopErrorScopeCallback(Device* device,
-                                           uint64_t requestSerial,
-                                           WGPUErrorType errorType,
+WireResult Client::DoDeviceLoggingCallback(Device* device,
+                                           WGPULoggingType loggingType,
                                            const char* message) {
     if (device == nullptr) {
         // The device might have been deleted or recreated so this isn't an error.
-        return true;
+        return WireResult::Success;
     }
-    return device->OnPopErrorScopeCallback(requestSerial, errorType, message);
+    device->HandleLogging(loggingType, message);
+    return WireResult::Success;
 }
 
-bool Client::DoShaderModuleGetCompilationInfoCallback(ShaderModule* shaderModule,
-                                                      uint64_t requestSerial,
-                                                      WGPUCompilationInfoRequestStatus status,
-                                                      const WGPUCompilationInfo* info) {
+WireResult Client::DoDeviceLostCallback(Device* device,
+                                        WGPUDeviceLostReason reason,
+                                        char const* message) {
+    if (device == nullptr) {
+        // The device might have been deleted or recreated so this isn't an error.
+        return WireResult::Success;
+    }
+    device->HandleDeviceLost(reason, message);
+    return WireResult::Success;
+}
+
+WireResult Client::DoDevicePopErrorScopeCallback(Device* device,
+                                                 uint64_t requestSerial,
+                                                 WGPUErrorType errorType,
+                                                 const char* message) {
+    if (device == nullptr) {
+        // The device might have been deleted or recreated so this isn't an error.
+        return WireResult::Success;
+    }
+    if (device->OnPopErrorScopeCallback(requestSerial, errorType, message)) {
+        return WireResult::Success;
+    }
+    return WireResult::FatalError;
+}
+
+WireResult Client::DoShaderModuleGetCompilationInfoCallback(ShaderModule* shaderModule,
+                                                            uint64_t requestSerial,
+                                                            WGPUCompilationInfoRequestStatus status,
+                                                            const WGPUCompilationInfo* info) {
     // The shader module might have been deleted or recreated so this isn't an error.
     if (shaderModule == nullptr) {
-        return true;
+        return WireResult::Success;
     }
-    return shaderModule->GetCompilationInfoCallback(requestSerial, status, info);
+    if (shaderModule->GetCompilationInfoCallback(requestSerial, status, info)) {
+        return WireResult::Success;
+    }
+    return WireResult::FatalError;
 }
 
 }  // namespace dawn::wire::client
diff --git a/src/dawn/wire/client/Device.cpp b/src/dawn/wire/client/Device.cpp
index 1b90752..68cf129 100644
--- a/src/dawn/wire/client/Device.cpp
+++ b/src/dawn/wire/client/Device.cpp
@@ -341,13 +341,12 @@
         descriptor, callbackInfo);
 }
 
-bool Client::DoDeviceCreateComputePipelineAsyncCallback(ObjectHandle eventManager,
-                                                        WGPUFuture future,
-                                                        WGPUCreatePipelineAsyncStatus status,
-                                                        const char* message) {
+WireResult Client::DoDeviceCreateComputePipelineAsyncCallback(ObjectHandle eventManager,
+                                                              WGPUFuture future,
+                                                              WGPUCreatePipelineAsyncStatus status,
+                                                              const char* message) {
     return GetEventManager(eventManager)
-               .SetFutureReady<CreateComputePipelineEvent>(future.id, status, message) ==
-           WireResult::Success;
+        .SetFutureReady<CreateComputePipelineEvent>(future.id, status, message);
 }
 
 void Device::CreateRenderPipelineAsync(WGPURenderPipelineDescriptor const* descriptor,
@@ -367,13 +366,12 @@
         descriptor, callbackInfo);
 }
 
-bool Client::DoDeviceCreateRenderPipelineAsyncCallback(ObjectHandle eventManager,
-                                                       WGPUFuture future,
-                                                       WGPUCreatePipelineAsyncStatus status,
-                                                       const char* message) {
+WireResult Client::DoDeviceCreateRenderPipelineAsyncCallback(ObjectHandle eventManager,
+                                                             WGPUFuture future,
+                                                             WGPUCreatePipelineAsyncStatus status,
+                                                             const char* message) {
     return GetEventManager(eventManager)
-               .SetFutureReady<CreateRenderPipelineEvent>(future.id, status, message) ==
-           WireResult::Success;
+        .SetFutureReady<CreateRenderPipelineEvent>(future.id, status, message);
 }
 
 }  // namespace dawn::wire::client
diff --git a/src/dawn/wire/client/Instance.cpp b/src/dawn/wire/client/Instance.cpp
index 8f52947..76a9128 100644
--- a/src/dawn/wire/client/Instance.cpp
+++ b/src/dawn/wire/client/Instance.cpp
@@ -218,17 +218,17 @@
     return {futureIDInternal};
 }
 
-bool Client::DoInstanceRequestAdapterCallback(ObjectHandle eventManager,
-                                              WGPUFuture future,
-                                              WGPURequestAdapterStatus status,
-                                              const char* message,
-                                              const WGPUAdapterProperties* properties,
-                                              const WGPUSupportedLimits* limits,
-                                              uint32_t featuresCount,
-                                              const WGPUFeatureName* features) {
+WireResult Client::DoInstanceRequestAdapterCallback(ObjectHandle eventManager,
+                                                    WGPUFuture future,
+                                                    WGPURequestAdapterStatus status,
+                                                    const char* message,
+                                                    const WGPUAdapterProperties* properties,
+                                                    const WGPUSupportedLimits* limits,
+                                                    uint32_t featuresCount,
+                                                    const WGPUFeatureName* features) {
     return GetEventManager(eventManager)
-               .SetFutureReady<RequestAdapterEvent>(future.id, status, message, properties, limits,
-                                                    featuresCount, features) == WireResult::Success;
+        .SetFutureReady<RequestAdapterEvent>(future.id, status, message, properties, limits,
+                                             featuresCount, features);
 }
 
 void Instance::ProcessEvents() {
diff --git a/src/dawn/wire/client/Queue.cpp b/src/dawn/wire/client/Queue.cpp
index f589f12..18f696d 100644
--- a/src/dawn/wire/client/Queue.cpp
+++ b/src/dawn/wire/client/Queue.cpp
@@ -81,11 +81,10 @@
     return ObjectType::Queue;
 }
 
-bool Client::DoQueueWorkDoneCallback(ObjectHandle eventManager,
-                                     WGPUFuture future,
-                                     WGPUQueueWorkDoneStatus status) {
-    return GetEventManager(eventManager).SetFutureReady<WorkDoneEvent>(future.id, status) ==
-           WireResult::Success;
+WireResult Client::DoQueueWorkDoneCallback(ObjectHandle eventManager,
+                                           WGPUFuture future,
+                                           WGPUQueueWorkDoneStatus status) {
+    return GetEventManager(eventManager).SetFutureReady<WorkDoneEvent>(future.id, status);
 }
 
 void Queue::OnSubmittedWorkDone(WGPUQueueWorkDoneCallback callback, void* userdata) {