)]}'
{
  "commit": "9121f29d18ff1baa94af6da9a8f5879e553e7f5d",
  "tree": "f7070a6ec6ba2f07f8c724270a3cf4162bdab3c4",
  "parents": [
    "0b23da2cfd1c7157ee89855950ad681c397db37b"
  ],
  "author": {
    "name": "Marcin Kowalczyk",
    "email": "qrczak@google.com",
    "time": "Tue Mar 03 08:15:39 2026 +0100"
  },
  "committer": {
    "name": "Marcin Kowalczyk",
    "email": "qrczak@google.com",
    "time": "Tue Mar 03 08:17:13 2026 +0100"
  },
  "message": "Add `ContextProjection()`.\n\nIt adapts a field handler to depend on a part of the context. Makes a field\nhandler depending on some outer context parameters from a field handler\ndepending on inner context parameters.\n\n`projection...` parameters are applied sequentially to transform the outer\ncontext to the inner context. Each `projection` is an invocable which\nreturns either a reference or a tuple of references. Common projections\ninclude `ContextAt\u003cindices...\u003e` to select a subset of context parameters,\nor `\u0026Context::member` to select a member of the context parameter.\n\nPiperOrigin-RevId: 877765506\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac9b9009aaf52f436207c26353cbf20710496edf",
      "old_mode": 33188,
      "old_path": "riegeli/messages/BUILD",
      "new_id": "15c9dc2f23dc121e32bbbd38c3431622ce0ba955",
      "new_mode": 33188,
      "new_path": "riegeli/messages/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b68813fbcf40b6a9c18782539cb0159355cdabbd",
      "new_mode": 33188,
      "new_path": "riegeli/messages/context_projection.h"
    },
    {
      "type": "modify",
      "old_id": "23e92a2e9d99a463bf3fac87eb2c6b0500ee7912",
      "old_mode": 33188,
      "old_path": "riegeli/messages/serialized_message_reader_internal.h",
      "new_id": "869c03a1bb59d867a56e9f9c86d24cff4abcc03a",
      "new_mode": 33188,
      "new_path": "riegeli/messages/serialized_message_reader_internal.h"
    }
  ]
}
