)]}'
{
  "commit": "25f9f5add602c3d828afaf167a4354119d3f13f1",
  "tree": "9ad9842f8189bb6ab21e59b92fb66f4751d00558",
  "parents": [
    "dff652864b17de8aa5a0ea2ec6a2cbcce8f6dfc6"
  ],
  "author": {
    "name": "Devin Jeanpierre",
    "email": "jeanpierreda@google.com",
    "time": "Tue Mar 14 20:39:10 2023 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Mar 14 20:39:43 2023 -0700"
  },
  "message": "Include C++ thunk impls for functions and records inside their `GeneratedItem`.\n\n(There are some unimportant formatting changes that result from this -- since they\u0027re added from a different place, the source order can change, and since they\u0027re added one-by-ne, there\u0027s extra newlines. That should be all.)\n\nThis wasn\u0027t possible before the refactoring https://github.com/google/crubit/commit/c1647512afacf7c3440f7fa3ba9debbf8cf70ffb. Now that it\u0027s possible, doing this allows us to kill the parallel checks: we don\u0027t want to generate thunks if we don\u0027t generate the public API, so we used to do the same checks in parallel (effectively asking, in the thunk writing code, \"will I generate a public API?\" -- this was messy. And in particular, this broke when I added a new reason that API generation can fail (feature flags).\n\nBy including the thunks inside the actual API GeneratedItem, they\u0027re paired together completely, and will never go out of sync ever again.\n\nThis also resolves the messy todo around overloaded functions: now, thunks get suppressed for overloaded functions for the same reason as the API definition does, and we don\u0027t need to worry anymore about dependency cycles.\n\nPiperOrigin-RevId: 516708846\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c4f385eaa1b37412783beee3f19e30e13f659f95",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/src_code_gen.rs",
      "new_id": "18d02e9e5ff4bad3e915eebc5c26fe1fcbe4f99c",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/src_code_gen.rs"
    },
    {
      "type": "modify",
      "old_id": "dee8348251e8fe3ed790b3bab64f747c00124051",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/bitfields_rs_api_impl.cc",
      "new_id": "cdd504a5bacfe1ab5eeb65f8ece96b657ebd4364",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/bitfields_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "c9a9342cded6104da25013394d52a00ef073004a",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/clang_attrs_rs_api_impl.cc",
      "new_id": "ab219b2db3fc06855f4a41340faa5cff8e0c4ad1",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/clang_attrs_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "ea6f18a284151ea8d065b15f0a948facf67a6765",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/comment_rs_api_impl.cc",
      "new_id": "bccfc2cb39bde3710523ae2d23a6b3ec9d69d2c1",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/comment_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "d07ec2e0212d7ecc70c0bdb7e2a722cb2ee9756e",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/doc_comment_rs_api_impl.cc",
      "new_id": "d75f0e9e7dc9353dd1e93075bf270517b62635f9",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/doc_comment_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "faae6afc8b3f4edcd85de2f0bb77938920d3d999",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/escaping_keywords_rs_api_impl.cc",
      "new_id": "f02825a9e88362adfcdf9db0edd6bab89da8ae70",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/escaping_keywords_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "e3d1a5a9e327734f1499f00c75b29c7cb3746fcf",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/friend_functions_rs_api_impl.cc",
      "new_id": "9795a7ac4cb96fbbb74c5b7f44ab8a9c057a65e2",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/friend_functions_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "807a8f53f545bb8da3380cb98311936c8e6198af",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/inheritance_rs_api_impl.cc",
      "new_id": "6822fbd6fa0acdf31a1b68b4b1d9b270c738334f",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/inheritance_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "d17bfca7c357c9c7d48fe1ce4e7120d8e1a16dc0",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/item_order_rs_api_impl.cc",
      "new_id": "da6f4e85c201aced43244b1cce0d60908f3a12f9",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/item_order_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "0dbf4e9c6a7d420e6bdfa2368d353e95724a162b",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/method_qualifiers_rs_api_impl.cc",
      "new_id": "87c5c9c9e07b870d8613c7095126da86e4899664",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/method_qualifiers_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "0fd038b34558b5d5e9fcbc8a6765158d5bfe1b40",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/namespace_rs_api_impl.cc",
      "new_id": "82240ad66e889ff538e1f5646311a88fc6544ae9",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/namespace_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "1ada90fa011ee933f4adc936b1fe85b8fe6cf653",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/no_unique_address_rs_api_impl.cc",
      "new_id": "b5beb7232da46eb96b6c60bb8c29141d968a7e41",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/no_unique_address_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "8f35418fded6feeb18d973ab6f9cabdfbc5eefa8",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/nontrivial_type_rs_api_impl.cc",
      "new_id": "f3f9353313a994e6ccad7af460937d54bed7c0fc",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/nontrivial_type_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "0b2cdd927e198dedf8972b99f3b89248c818961f",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/operators_rs_api_impl.cc",
      "new_id": "ce9fccbf46f4890b57f7cde7b1d403aac35af970",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/operators_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "90413cef75a9c3fd75d3ec5361e4c576d8db6a75",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/overloads_rs_api_impl.cc",
      "new_id": "9a892e3fe1e245f7970864944422c5fb4c70e14f",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/overloads_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "83fc5a4e4cb1d99dedeb779e4c1bbe7667073d01",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/polymorphic_rs_api_impl.cc",
      "new_id": "0ce396f39f761f89138bbda9951108182f0b8701",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/polymorphic_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "99c8391d8bc417953e9b1efb608be1f9223bb13c",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/private_members_rs_api_impl.cc",
      "new_id": "2aea1d32afc28254b4ebb6dc83f524a2d1f424b5",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/private_members_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "d1a2cfc592bbd64ae7c70b7b44d6e176a1b739c6",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/static_methods_rs_api_impl.cc",
      "new_id": "8e628ac986c57d30e4fb69e3c1f725c607f47c2f",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/static_methods_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "21b7939785a47a67d6f17cc4fd68c2f2c57c2373",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/templates_rs_api_impl.cc",
      "new_id": "1868ac4708d513251c392117b2be34e2ad7479d3",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/templates_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "506004de4a2287c05188d7aca97944fe39ba1116",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/templates_source_order_rs_api_impl.cc",
      "new_id": "af8c499571f9a14c13e21adcc8300adef33561e7",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/templates_source_order_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "65b05668928628ebe76c7afe88e9518f7fae310b",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/trivial_type_rs_api_impl.cc",
      "new_id": "90723b73c19829bc0d8f5276ebb20a7b4e2a3495",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/trivial_type_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "90f56d8c582fbe2cc5814dfd904e0e8032d3de14",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/typedefs_rs_api_impl.cc",
      "new_id": "5a5b194b70d24cddf3564178ab61acaaa27f86bc",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/typedefs_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "9df2718e9ff7b9e4bb444988d64a42bcf967e497",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/types_rs_api_impl.cc",
      "new_id": "aac3058abe4e00ca33e7f73075e8c3111c2db114",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/types_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "81bfb266b32b7d30661ff2fc90c508cf84cdfa50",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/unions_rs_api_impl.cc",
      "new_id": "71e9336511547fa973e9884a642c552e93b787f3",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/unions_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "6374ed7943496ff555a3a74c1e92ee8331500682",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/unsupported_rs_api_impl.cc",
      "new_id": "b8c2665edd2aef8aedf10204391bfee320ea6e06",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/unsupported_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "42d5acf6bdc5f2980a2f797936f738dfe32f7d03",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/user_of_base_class_rs_api_impl.cc",
      "new_id": "9df248a171b6992e340d285cb3ee338277fdd732",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/user_of_base_class_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "e25837cc11aa708588d1793480fee8bd88b1b0ce",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api_impl.cc",
      "new_id": "6a4a7c5391a0c1e7112fbf7b56adbafebcc2ef37",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "e214a87821b7b64da7a3b85527ce5b43d14df9c3",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api_impl.cc",
      "new_id": "7d9795a8b53f19f1ae3e5dc1bcf2a2af6f998d09",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api_impl.cc"
    }
  ]
}
