)]}'
{
  "commit": "72e5633bdde32905fc13f77160b7d660da35d03e",
  "tree": "d6387aaf3f3452a7fc4fc2e530bc2741853a1b33",
  "parents": [
    "08738a4428fa4a157f7037637a22c11f9a29050b"
  ],
  "author": {
    "name": "Dmitri Gribenko",
    "email": "dmitrig@google.com",
    "time": "Fri Oct 23 15:28:10 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Oct 23 15:35:00 2026 -0700"
  },
  "message": "Crubit docs: fix Rust binding pages\n\n* rust/index.md, rust/structs.md: `Vec` and `String` are supported now; use\n  `HashMap` as the unsupported example. Opaque fields are\n  `std::array\u003cunsigned char, N\u003e`.\n* rust/functions.md: C++ bindings use the corresponding C++ type, not Rust\n  type; document that `impl FnOnce` maps to `rs::FnRef`.\n* rust/traits.md: the generated C++ struct is named after the trait; fix an\n  inverted \"not\".\n* rust/std.md: `rs::StrRef`; fix the C++ snippet (`;`, `EXPECT_EQ`, string);\n  `Result`/`Option` receive C++ bindings, not Rust bindings.\n* rust/movable_types.md: tuple-struct fields are named `__field0`, ...\n* rust/cpp_enums.md: use the full\n  `#[crubit_annotate::cpp_enum(kind \u003d ...)]` attribute.\n\nunknown commit also touches rust/functions.md L20-25.\n\nPiperOrigin-RevId: 1005910135\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ae0c9a76a86105cd470d9afff10011723a655f4f",
      "old_mode": 33188,
      "old_path": "docs/rust/cpp_enums.md",
      "new_id": "d86945614b886a881ec1b5098e0250df4f771419",
      "new_mode": 33188,
      "new_path": "docs/rust/cpp_enums.md"
    },
    {
      "type": "modify",
      "old_id": "f52d18cdb7cdb923f6c2a2e0499a1b083703cd40",
      "old_mode": 33188,
      "old_path": "docs/rust/functions.md",
      "new_id": "56c6bdeb358d4e7bfdf09cec143a63eaab463075",
      "new_mode": 33188,
      "new_path": "docs/rust/functions.md"
    },
    {
      "type": "modify",
      "old_id": "fe9390f1540791bb7990ad748d38799075ab28a4",
      "old_mode": 33188,
      "old_path": "docs/rust/index.md",
      "new_id": "278e416aee15c694df29d80840abc72e4e30b3f8",
      "new_mode": 33188,
      "new_path": "docs/rust/index.md"
    },
    {
      "type": "modify",
      "old_id": "b66afe9bf00daa5c844c362e005ceaafcb0b230e",
      "old_mode": 33188,
      "old_path": "docs/rust/movable_types.md",
      "new_id": "678a0d615c6254592f273317f971eae4e0ac97df",
      "new_mode": 33188,
      "new_path": "docs/rust/movable_types.md"
    },
    {
      "type": "modify",
      "old_id": "9ac258a2fc550ecc43d8628fdcb7a972ab7e2928",
      "old_mode": 33188,
      "old_path": "docs/rust/std.md",
      "new_id": "b5413b8e8ea1d9646007dc0e1b3f6e41c7a93245",
      "new_mode": 33188,
      "new_path": "docs/rust/std.md"
    },
    {
      "type": "modify",
      "old_id": "c7333d61b8a5ce5f6abce436ad7d75d6e28c8560",
      "old_mode": 33188,
      "old_path": "docs/rust/structs.md",
      "new_id": "c2b834148026e157a3b37a381195ae9c1e18f731",
      "new_mode": 33188,
      "new_path": "docs/rust/structs.md"
    },
    {
      "type": "modify",
      "old_id": "1feaf82bd45a0bd8a476afb8a8127922607c2e95",
      "old_mode": 33188,
      "old_path": "docs/rust/traits.md",
      "new_id": "c0e04ee6eb78278ee355a97803ec882c7f6439ef",
      "new_mode": 33188,
      "new_path": "docs/rust/traits.md"
    }
  ]
}
