Minor updates to fix compilation.

This CL adds the needed `memory` include for clang on windows and fixes
up some issues to make doxygen happy again.

Change-Id: I2c3f21aa086b079d3b861786834bcf4370123a7d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/26703
Reviewed-by: Idan Raiter <idanr@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/ast/transform/vertex_pulling_transform.h b/src/ast/transform/vertex_pulling_transform.h
index d81b1cd..030c517 100644
--- a/src/ast/transform/vertex_pulling_transform.h
+++ b/src/ast/transform/vertex_pulling_transform.h
@@ -15,6 +15,7 @@
 #ifndef SRC_AST_TRANSFORM_VERTEX_PULLING_TRANSFORM_H_
 #define SRC_AST_TRANSFORM_VERTEX_PULLING_TRANSFORM_H_
 
+#include <memory>
 #include <string>
 #include <unordered_map>
 #include <vector>
@@ -78,35 +79,54 @@
 
 /// Describes a vertex attribute within a buffer
 struct VertexAttributeDescriptor {
+  /// The format of the attribute
   VertexFormat format;
+  /// The byte offset of the attribute in the buffer
   uint64_t offset;
+  /// The shader location used for the attribute
   uint32_t shader_location;
 };
 
 /// Describes a buffer containing multiple vertex attributes
 struct VertexBufferLayoutDescriptor {
+  /// Constructor
   VertexBufferLayoutDescriptor();
-  ~VertexBufferLayoutDescriptor();
+  /// Constructor
+  /// @param in_array_stride the array stride of the in buffer
+  /// @param in_step_mode the step mode of the in buffer
+  /// @param in_attributes the in attributes
   VertexBufferLayoutDescriptor(
       uint64_t in_array_stride,
       InputStepMode in_step_mode,
       std::vector<VertexAttributeDescriptor> in_attributes);
+  /// Copy constructor
+  /// @param other the struct to copy
   VertexBufferLayoutDescriptor(const VertexBufferLayoutDescriptor& other);
+  ~VertexBufferLayoutDescriptor();
 
+  /// The array stride used in the in buffer
   uint64_t array_stride = 0u;
+  /// The input step mode used
   InputStepMode step_mode = InputStepMode::kVertex;
+  /// The vertex attributes
   std::vector<VertexAttributeDescriptor> attributes;
 };
 
 /// Describes vertex state, which consists of many buffers containing vertex
 /// attributes
 struct VertexStateDescriptor {
+  /// Constructor
   VertexStateDescriptor();
-  ~VertexStateDescriptor();
+  /// Constructor
+  /// @param in_vertex_buffers the vertex buffers
   VertexStateDescriptor(
       std::vector<VertexBufferLayoutDescriptor> in_vertex_buffers);
+  /// Copy constructor
+  /// @param other the struct to copy
   VertexStateDescriptor(const VertexStateDescriptor& other);
+  ~VertexStateDescriptor();
 
+  /// The vertex buffers
   std::vector<VertexBufferLayoutDescriptor> vertex_buffers;
 };
 
@@ -121,7 +141,7 @@
 ///
 /// |VertexFormat| represents the input type of the attribute. This isn't
 /// related to the type of the variable in the shader. For example,
-/// |VertexFormat::vec2_f16| tells us that the buffer will contain f16 elements,
+/// `VertexFormat::kVec2F16` tells us that the buffer will contain f16 elements,
 /// to be read as vec2. In the shader, a user would make a vec2<f32> to be able
 /// to use them. The conversion between f16 and f32 will need to be handled by
 /// us (using unpack functions).