)]}'
{
  "commit": "75266116f21731354fe44cea6a1aae7eae70441e",
  "tree": "7002fc8fa1f7f367ea2c75a86fa6e005901cba6b",
  "parents": [
    "df3c6e7f4dab940a32b889080a6d535ea16f9431"
  ],
  "author": {
    "name": "vasilvv",
    "email": "vasilvv@google.com",
    "time": "Tue Sep 26 17:29:55 2023 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Sep 26 17:31:55 2023 -0700"
  },
  "message": "Refactor the read part of WebTransport Stream API into ReadStream.\n\nThe following changes are included:\n- Read()/ReadableBytes() are now a part of their own interface.\n- Introduce PeekNextAvaliableRegion()/MarkConsumed() as a zero-copy alternative to read.\n- Introduce a utility method for to use the peek API while taking care of reading FIN correctly.\n- Make webtransport::Stream a direct subclass of TerminableStream to avoid diamond inheritance problem.\n\nThe long-term plan here is to abstract multiple kinds of streams for the goals of public APIs, including incoming QUIC streams, incoming WebTransport streams, and incoming HTTP request/response bodies.\n\nPiperOrigin-RevId: 568695001\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "072b3cad4bd8e9cab00454d8f65cf7c6e2c64f36",
      "old_mode": 33188,
      "old_path": "quiche/common/quiche_stream.h",
      "new_id": "9de876b0ff1b7bfe02f9aa357e44c6c705e18cc1",
      "new_mode": 33188,
      "new_path": "quiche/common/quiche_stream.h"
    },
    {
      "type": "modify",
      "old_id": "f484249e12c8744e6f87c826ccde3d9faa2b2462",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/web_transport_stream_adapter.cc",
      "new_id": "18928f35b5fd96451f7ab99f1d0d4d2abee80fa3",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/web_transport_stream_adapter.cc"
    },
    {
      "type": "modify",
      "old_id": "24c250a79ec277cbd5e6b61f0badee441c20c9a7",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/web_transport_stream_adapter.h",
      "new_id": "004a62f5c22463e2b2b6bb82ca5b2488a069766c",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/web_transport_stream_adapter.h"
    },
    {
      "type": "modify",
      "old_id": "16febf099796a2356fa85ea1caf201b4e7520fb3",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_generic_session_test.cc",
      "new_id": "ce5d184a30113173d9f17bf4212e10db27850f02",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_generic_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "8855c9c2c8b6d0ecba20bce37f7a7188b01792f8",
      "old_mode": 33188,
      "old_path": "quiche/web_transport/test_tools/mock_web_transport.h",
      "new_id": "9ebf2396ba14e325779ed2447347c3756752c599",
      "new_mode": 33188,
      "new_path": "quiche/web_transport/test_tools/mock_web_transport.h"
    },
    {
      "type": "modify",
      "old_id": "741be7345f14927626a881dee72e92e561ca6053",
      "old_mode": 33188,
      "old_path": "quiche/web_transport/web_transport.h",
      "new_id": "be08f89adf1ca5225a7ed256667267df46194708",
      "new_mode": 33188,
      "new_path": "quiche/web_transport/web_transport.h"
    }
  ]
}
