Structify Field.

PiperOrigin-RevId: 396917589
diff --git a/rs_bindings_from_cc/ast_visitor.cc b/rs_bindings_from_cc/ast_visitor.cc
index f174dcd..0d79442 100644
--- a/rs_bindings_from_cc/ast_visitor.cc
+++ b/rs_bindings_from_cc/ast_visitor.cc
@@ -100,8 +100,8 @@
 
   std::vector<Field> fields;
   for (const clang::FieldDecl* field_decl : record_decl->fields()) {
-    fields.emplace_back(GetTranslatedName(field_decl),
-                        ConvertType(field_decl->getType()));
+    fields.push_back({.identifier = GetTranslatedName(field_decl),
+                      .type = ConvertType(field_decl->getType())});
   }
   ir_.Records().emplace_back(GetTranslatedName(record_decl), std::move(fields));
   return true;
diff --git a/rs_bindings_from_cc/ast_visitor_test.cc b/rs_bindings_from_cc/ast_visitor_test.cc
index ced33ea..2236707 100644
--- a/rs_bindings_from_cc/ast_visitor_test.cc
+++ b/rs_bindings_from_cc/ast_visitor_test.cc
@@ -155,13 +155,13 @@
   EXPECT_THAT(some_struct.Fields(), SizeIs(2));
   EXPECT_EQ(some_struct.Ident().Ident(), "SomeStruct");
   Field first = some_struct.Fields()[0];
-  EXPECT_EQ(first.Ident().Ident(), "first_field");
-  EXPECT_EQ(first.FieldType().cc_name, "int");
-  EXPECT_EQ(first.FieldType().rs_name, "i32");
+  EXPECT_EQ(first.identifier.Ident(), "first_field");
+  EXPECT_EQ(first.type.cc_name, "int");
+  EXPECT_EQ(first.type.rs_name, "i32");
   Field second = some_struct.Fields()[1];
-  EXPECT_EQ(second.Ident().Ident(), "second_field");
-  EXPECT_EQ(second.FieldType().cc_name, "int");
-  EXPECT_EQ(second.FieldType().rs_name, "i32");
+  EXPECT_EQ(second.identifier.Ident(), "second_field");
+  EXPECT_EQ(second.type.cc_name, "int");
+  EXPECT_EQ(second.type.rs_name, "i32");
 }
 
 }  // namespace
diff --git a/rs_bindings_from_cc/ir.cc b/rs_bindings_from_cc/ir.cc
index 74cbc1c..c044377 100644
--- a/rs_bindings_from_cc/ir.cc
+++ b/rs_bindings_from_cc/ir.cc
@@ -54,8 +54,8 @@
 
 nlohmann::json Field::ToJson() const {
   nlohmann::json result;
-  result["type"] = type_.ToJson();
-  result["identifier"] = identifier_.ToJson();
+  result["type"] = type.ToJson();
+  result["identifier"] = identifier.ToJson();
   return result;
 }
 
diff --git a/rs_bindings_from_cc/ir.h b/rs_bindings_from_cc/ir.h
index da3f026..55021df 100644
--- a/rs_bindings_from_cc/ir.h
+++ b/rs_bindings_from_cc/ir.h
@@ -101,18 +101,11 @@
 };
 
 // A field (non-static member variable) of a record.
-class Field {
- public:
-  Field(Identifier identifier, Type type)
-      : identifier_(std::move(identifier)), type_(std::move(type)) {}
-
-  const Identifier& Ident() const { return identifier_; }
-  const Type& FieldType() const { return type_; }
+struct Field {
   nlohmann::json ToJson() const;
 
- private:
-  Identifier identifier_;
-  Type type_;
+  Identifier identifier;
+  Type type;
 };
 
 // A record (struct, class, union).
diff --git a/rs_bindings_from_cc/ir_test.cc b/rs_bindings_from_cc/ir_test.cc
index 77ac077..67a67d9 100644
--- a/rs_bindings_from_cc/ir_test.cc
+++ b/rs_bindings_from_cc/ir_test.cc
@@ -63,10 +63,10 @@
              .is_inline = false}},
          {Record(Identifier(std::string("SomeStruct")),
                  {
-                     Field(Identifier(std::string("first_field")),
-                           Type{std::string("i32"), std::string("int")}),
-                     Field(Identifier(std::string("second_field")),
-                           Type{std::string("i32"), std::string("int")}),
+                     Field{.identifier = Identifier("first_field"),
+                           .type = Type{"i32", "int"}},
+                     Field{.identifier = Identifier("second_field"),
+                           .type = Type{"i32", "int"}},
                  })})
           .ToJson(),
       expected);