)]}'
{
  "commit": "57c5fc1f79229cd2ca9eba68568ade66fda03df5",
  "tree": "1fef71da9b4c970a88fb32906314c63889d3ec60",
  "parents": [
    "b0f2423e17fbd1028f918af6b26bf6cc6331d66c"
  ],
  "author": {
    "name": "Hasnain Lakhani",
    "email": "m.hasnain.lakhani@gmail.com",
    "time": "Sat Aug 02 21:12:07 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Aug 02 21:12:07 2025 -0700"
  },
  "message": "Fix UUID handling in Rust Thrift compact protocol (#3179)\n\nThis commit fixes two bugs in the Rust Thrift implementation that prevented\nUUID fields from working correctly with the compact protocol:\n\n1. Missing UUID case in skip_till_depth function\n   - The skip function in lib/rs/src/protocol/mod.rs did not handle TType::Uuid\n   - This caused \"cannot skip field type Uuid\" errors when trying to skip UUID fields\n   - Fixed by adding: TType::Uuid \u003d\u003e self.read_uuid().map(|_| ())\n\n2. Incorrect UUID serialization in compact protocol\n   - The compact protocol was using read_bytes()/write_bytes() for UUIDs\n   - These methods include a length prefix, but UUIDs should be transmitted as\n     raw 16-byte values per the Thrift specification\n   - This caused \"don\u0027t know what type: 15\" errors during cross-language tests\n   - Fixed by reading/writing UUID bytes directly without length prefix\n   - Implementation now matches the binary protocol\u0027s approach for consistency\n\nThe bug manifested as failures in cross-language tests between Go and Rust\nwhen using compact protocol. The error occurred because Go correctly expected\nraw 16-byte UUID values while Rust was incorrectly adding a length prefix.\n\nTesting:\n- Verified all go-rs and rs-go cross tests now pass with compact protocol\n- Tests confirm UUID values are correctly serialized and deserialized\n- Both buffered and framed transports work correctly",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7e1a7510e0c6da6c9c03904a9b975f7c71221a51",
      "old_mode": 33188,
      "old_path": "lib/rs/src/protocol/compact.rs",
      "new_id": "d47df5d87721fd72ba5c1627c0d3c372861be0fa",
      "new_mode": 33188,
      "new_path": "lib/rs/src/protocol/compact.rs"
    },
    {
      "type": "modify",
      "old_id": "573978a758b7586ce66086c9d65b752f1e88b55f",
      "old_mode": 33188,
      "old_path": "lib/rs/src/protocol/mod.rs",
      "new_id": "0fbf509369e8e0f7e22bd912bd1adcea3b2f0f92",
      "new_mode": 33188,
      "new_path": "lib/rs/src/protocol/mod.rs"
    }
  ]
}
