)]}'
{
  "commit": "e4116700b5e5741ef1b2ca041e8c13af0c71cd89",
  "tree": "99212af45e419c80f9a1b08ee1773ab7fd160e6c",
  "parents": [
    "025258525ce5029ef1bfcfa0210d8890dff708dc"
  ],
  "author": {
    "name": "Protobuf Team Bot",
    "email": "protobuf-github-bot@google.com",
    "time": "Tue Dec 13 08:34:50 2022 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Dec 13 08:36:26 2022 -0800"
  },
  "message": "Clean up the interface of io::Printer.\n\nThis CL kicks any definition longer than three or so lines out of the class\nbody and defines them out of line. The number of private definitions at the head of the class was getting completely out of control.\n\nIdeally we would not kick Printer::Sub out, since its API is important,\nbut there\u0027s no way to do this while also moving ValueImpl out of the class,\nwhich was taking on a whole lot of space.\n\nToday I learned that an out-of-line template definition can have multiple template \u003c\u003e declarations, which is necessary to be able to utter the signature of those symbols out of line.\n\nPiperOrigin-RevId: 495030857\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1320b71cdc6030af967a6c8533f9a1d3b0242116",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/io/printer.cc",
      "new_id": "2fc7b6be3c23b52d209dcd2cc2debb40d136c440",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/io/printer.cc"
    },
    {
      "type": "modify",
      "old_id": "31deaa5339037746fbc4caee8ac6ac642b8e4c0a",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/io/printer.h",
      "new_id": "4281d14931637cab14283a0dce6e7213d400a238",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/io/printer.h"
    }
  ]
}
