)]}'
{
  "commit": "9bdafdbb0c9aa948cb37e1ccdf0df8a09b9e7e4e",
  "tree": "d4bc8c57759160ba98f3d0cf5f9740dbbb85e4ef",
  "parents": [
    "31c5f73ec1277818e9dceb81a4b28cb3d185f60c"
  ],
  "author": {
    "name": "Adam Cozzette",
    "email": "acozzette@google.com",
    "time": "Tue Nov 05 10:21:37 2024 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Nov 05 10:24:35 2024 -0800"
  },
  "message": "Rust C++: remove per-message functions for repeated fields\n\nThis CL deletes the per-message C++ functions for operating on repeated fields\nand replaces them with functions in the runtime that can work with arbitrary\nmessages.\n\nSimilar to what we did with maps, this required refactoring the code to make it\nwork with `RepeatedPtrFieldBase`, the untyped base class of\n`RepeatedPtrField\u003cT\u003e`. I added a `RustRepeatedMessageHelper` class to allow us\naccess to the protected methods we need.\n\nThis should save a bit of linker input code size, but I think more importantly\nwe are going to need this eventually to enable tree shaking to work well.\n\nPiperOrigin-RevId: 693394959\n",
  "tree_diff": [
    {
      "type": "delete",
      "old_id": "208ce1fcb63190688a2067c2623c756236324cd5",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/Reflection/FeatureSetDescriptor.g.cs",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "ed4bfc45a10905be53d09336e22f7b56b53973ab",
      "old_mode": 33188,
      "old_path": "rust/cpp.rs",
      "new_id": "b26b9a1918482948f77cba3e4e731b63465320fb",
      "new_mode": 33188,
      "new_path": "rust/cpp.rs"
    },
    {
      "type": "modify",
      "old_id": "ff07992ed93fdd5b6a9aa1dc131dee980256eb66",
      "old_mode": 33188,
      "old_path": "rust/cpp_kernel/repeated.cc",
      "new_id": "7922c433f894e450d5050bc405ac22aee81e7c82",
      "new_mode": 33188,
      "new_path": "rust/cpp_kernel/repeated.cc"
    },
    {
      "type": "modify",
      "old_id": "e838c2cf387b82fa440038193191c20d4ab70c8a",
      "old_mode": 33188,
      "old_path": "rust/test/shared/accessors_repeated_test.rs",
      "new_id": "550d307f3ada3222c797a0f9a2628fc3b5410be3",
      "new_mode": 33188,
      "new_path": "rust/test/shared/accessors_repeated_test.rs"
    },
    {
      "type": "modify",
      "old_id": "17996b9882f00736ae04319b97965024649d507a",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/rust/message.cc",
      "new_id": "49622881d059783170d39e25a11a7755f956ae69",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/rust/message.cc"
    },
    {
      "type": "modify",
      "old_id": "31381e3cb790301f5c878e2f78d1735398f7adce",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/repeated_ptr_field.h",
      "new_id": "15ba5025747da89853bd497a450e53b2b3a5e756",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/repeated_ptr_field.h"
    }
  ]
}
