Update WGPUChainedStruct usage to match webgpu.h

In the webgpu-headers PR it was decided that in the C header
WGPUChainedStruct would be included as a member instead of members being
inlined.

See https://github.com/webgpu-native/webgpu-headers/pull/30

Bug: dawn:160
Change-Id: I8caf91f3106578077c80778621a632411da44423
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15441
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/dawn.json b/dawn.json
index db94f4e..fccab43 100644
--- a/dawn.json
+++ b/dawn.json
@@ -650,7 +650,7 @@
     },
     "device lost callback": {
         "category": "callback",
-        "args" : [
+        "args": [
             {"name": "message", "type": "char", "annotation": "const*"},
             {"name": "userdata", "type": "void", "annotation": "*"}
         ]
diff --git a/generator/templates/dawn_native/wgpu_structs.cpp b/generator/templates/dawn_native/wgpu_structs.cpp
index bec3ebf..83f24ee 100644
--- a/generator/templates/dawn_native/wgpu_structs.cpp
+++ b/generator/templates/dawn_native/wgpu_structs.cpp
@@ -20,7 +20,7 @@
             "sizeof mismatch for ChainedStruct");
     static_assert(alignof(ChainedStruct) == alignof(WGPUChainedStruct),
             "alignof mismatch for ChainedStruct");
-    static_assert(offsetof(ChainedStruct, nextInChain) == offsetof(WGPUChainedStruct, nextInChain),
+    static_assert(offsetof(ChainedStruct, nextInChain) == offsetof(WGPUChainedStruct, next),
             "offsetof mismatch for ChainedStruct::nextInChain");
     static_assert(offsetof(ChainedStruct, sType) == offsetof(WGPUChainedStruct, sType),
             "offsetof mismatch for ChainedStruct::sType");
diff --git a/generator/templates/webgpu.h b/generator/templates/webgpu.h
index 49e598c..52005ac 100644
--- a/generator/templates/webgpu.h
+++ b/generator/templates/webgpu.h
@@ -95,7 +95,7 @@
 {% endfor %}
 
 typedef struct WGPUChainedStruct {
-    struct WGPUChainedStruct const * nextInChain;
+    struct WGPUChainedStruct const * next;
     WGPUSType sType;
 } WGPUChainedStruct;
 
@@ -105,8 +105,7 @@
             WGPUChainedStruct const * nextInChain;
         {% endif %}
         {% if type.chained %}
-            WGPUChainedStruct const * nextInChain;
-            WGPUSType sType;
+            WGPUChainedStruct chain;
         {% endif %}
         {% for member in type.members %}
             {{as_annotated_cType(member)}};
diff --git a/generator/templates/webgpu_cpp.cpp b/generator/templates/webgpu_cpp.cpp
index fcaac3e..7d22f64 100644
--- a/generator/templates/webgpu_cpp.cpp
+++ b/generator/templates/webgpu_cpp.cpp
@@ -46,7 +46,7 @@
             "sizeof mismatch for ChainedStruct");
     static_assert(alignof(ChainedStruct) == alignof(WGPUChainedStruct),
             "alignof mismatch for ChainedStruct");
-    static_assert(offsetof(ChainedStruct, nextInChain) == offsetof(WGPUChainedStruct, nextInChain),
+    static_assert(offsetof(ChainedStruct, nextInChain) == offsetof(WGPUChainedStruct, next),
             "offsetof mismatch for ChainedStruct::nextInChain");
     static_assert(offsetof(ChainedStruct, sType) == offsetof(WGPUChainedStruct, sType),
             "offsetof mismatch for ChainedStruct::sType");