)]}'
{
  "commit": "bad99636a426792298ccebcedcc67ac87d5043a3",
  "tree": "b51fb348e595f04d49ba5a6bc0643688471558c2",
  "parents": [
    "2f849cffd6c7cb5c0988b7c805cd51e7ebdc618b"
  ],
  "author": {
    "name": "Lukasz Anforowicz",
    "email": "lukasza@google.com",
    "time": "Fri Nov 18 16:39:13 2022 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Nov 18 16:39:42 2022 -0800"
  },
  "message": "Merge `api` and `cc_impl` fields of `BindingsSnippet`.\n\nBefore this CL, (optional) thunk declarations would go into `cc_impl`\nand API functions would go into the `api` field of `BindingsSnippet`.\n`cc_impl` would be emitted in a separate `__crubit_internal` namespace\nthat would go before `api` in the generated `...cc_api.h` file.  This\nscheme aesthetically separates implementation details (thunk\ndeclarations in the `__crubit_internal` namespace) from the real API.\nUnfortunately, this scheme will break down in the future - once\n`struct`s can be used as function parameters, because `stucts`\ndefinitions are part of the API, but thunk declarations still need to\nrefer to them.  Therefore, after this CL, `cc_impl` and `api` fields of\n`BindingsSnippet` are merged into a single field.\n\nThis CL also performs additional refactorings in the related code:\n- The `api` field is renamed to `cc`\n- The `rs_impl` field is renamed to `rs`\n- `BindingsSnippet` is renamed to `MixedSnippet` (since now it contains\n  `cc` and `rs` fields - a mix of C++ and Rust).\n- Instead of having a separate `include` and `cc` fields, we A)\n  remove the `include`, B) change the type of the `cc` field from\n  `TokenStream` to `CcSnippet` (which internally already contains\n  `includes` and a `TokenStream`).\n\nPiperOrigin-RevId: 489588797\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f6d940ee94ea7294b8dcb07eca593bf062bb274a",
      "old_mode": 33188,
      "old_path": "cc_bindings_from_rs/bindings.rs",
      "new_id": "fa6d2a022688b5147cddd7317a8a60aeac33f7a3",
      "new_mode": 33188,
      "new_path": "cc_bindings_from_rs/bindings.rs"
    },
    {
      "type": "modify",
      "old_id": "692260b5ff721acbe9b1f07289cdb401fa1b9442",
      "old_mode": 33188,
      "old_path": "cc_bindings_from_rs/cc_bindings_from_rs.rs",
      "new_id": "91b8c86a7e0e82b5ad1d682af7c43222778ec6f5",
      "new_mode": 33188,
      "new_path": "cc_bindings_from_rs/cc_bindings_from_rs.rs"
    }
  ]
}
