)]}'
{
  "commit": "7d3c49a171d47ec0adeca8ea2802661e4b4c27c6",
  "tree": "c034302bdd8d02997ca962a18ddaf571f41b9fc9",
  "parents": [
    "ff0fb4a5fafabc287a2b05f908c80529fc0df340"
  ],
  "author": {
    "name": "Victor Boivie",
    "email": "boivie@webrtc.org",
    "time": "Thu Mar 25 12:11:03 2021"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Wed Mar 31 08:27:37 2021"
  },
  "message": "dcsctp: Add bounded byte reader and writer\n\nPackets, chunks, parameters and error causes - the SCTP entities\nthat are sent on the wire - are buffers with fields that are stored\nin big endian and that generally consist of a fixed header size, and\na variable sized part, that can e.g. be encoded sub-fields or\nserialized strings.\n\nThe BoundedByteReader and BoundedByteWriter utilities make it easy\nto read those fields with as much aid from the compiler as possible,\nby having compile-time assertions that fields are not accessed\noutside the buffer\u0027s span.\n\nThere are some byte reading functionality already in modules/rtp_rtcp,\nbut that module would be a bit unfortunate to depend on, and doesn\u0027t\nhave the compile time bounds checking that is the biggest feature of\nthis abstraction of an rtc::ArrayView.\n\nBug: webrtc:12614\nChange-Id: I9fc641aff22221018dda9add4e2c44853c0f64f0\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/212967\nCommit-Queue: Victor Boivie \u003cboivie@webrtc.org\u003e\nReviewed-by: Mirko Bonadei \u003cmbonadei@webrtc.org\u003e\nReviewed-by: Tommi \u003ctommi@webrtc.org\u003e\nCr-Commit-Position: refs/heads/master@{#33597}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60e8fa457d9c79cdb4610c63a8e4ee0208103993",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "533262e03b0de47fe08fbb9e0b5db6a7510b08cc",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "9665938a5decd1140ad511e0f1dadce12323ad34",
      "old_mode": 33188,
      "old_path": "api/DEPS",
      "new_id": "2e4602917480976ada3fe9b7f4ba218e38e9e226",
      "new_mode": 33188,
      "new_path": "api/DEPS"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0ccc897775b3e51f0168fba47c5ec3fe06ed2b5e",
      "new_mode": 33188,
      "new_path": "net/dcsctp/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d546726c87b5e3aaf2356b57f42300163847d57f",
      "new_mode": 33188,
      "new_path": "net/dcsctp/packet/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b87648886ebd40fd77b025e16ca2342b94787392",
      "new_mode": 33188,
      "new_path": "net/dcsctp/packet/bounded_byte_reader.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2fb4a8678591f4fc8b05b535a10ce0332b05fe23",
      "new_mode": 33188,
      "new_path": "net/dcsctp/packet/bounded_byte_reader_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e547b0528c1ac8b5228e4a4fa526dbe203b5458",
      "new_mode": 33188,
      "new_path": "net/dcsctp/packet/bounded_byte_writer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3cea0a2f7c560ecf512e3551b2a7fc855184e5ee",
      "new_mode": 33188,
      "new_path": "net/dcsctp/packet/bounded_byte_writer_test.cc"
    }
  ]
}
