)]}'
{
  "commit": "5346e770c94a7e629d3c9769f9e9a6410bae6dff",
  "tree": "93da280c802fd05a48692ac7cf883863b03a8914",
  "parents": [
    "b48d1f4b3de38211d352b5ce0d7dcd2aecdce6e7"
  ],
  "author": {
    "name": "Brian Ho",
    "email": "hob@chromium.org",
    "time": "Thu Apr 22 17:49:42 2021 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Thu Apr 22 17:49:42 2021 +0000"
  },
  "message": "Add helper functions to iterate over ChainedStructs\n\nThis CL adds two helpers for more ergonomic processing of\nChainedStructs.\n\n1. FindInChain(): Iterates through the chain and automatically\n   casts the ChainedStruct into the appropriate child type before\n   returning.\n2. ValidateSTypes(): Verifies that the chain only contains structs\n   with sTypes from a pre-defined set. This also allows the caller\n   to specify one-of constraints.\n3. ValidateSingleSType(): Verifies that the chain contains a\n   single struct with a specific sType or is an empty chain. This\n   is a common case of |ValidateSTypes()| and is separated out as\n   a fast-path.\n\nChange-Id: I938df0bf2a9b1800b1105fb7f80fbde20bef8ec8\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47680\nCommit-Queue: Brian Ho \u003chob@chromium.org\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9cdf40b064da12c165d6f4293b33d48e2868ea75",
      "old_mode": 33188,
      "old_path": "docs/codegen.md",
      "new_id": "d79c0e9d6d7aa316a8626a04a72b2cd823016408",
      "new_mode": 33188,
      "new_path": "docs/codegen.md"
    },
    {
      "type": "modify",
      "old_id": "84a2b99c1a6958d5ba2d708c9dd5aa6a8e3ac3b4",
      "old_mode": 33188,
      "old_path": "generator/dawn_json_generator.py",
      "new_id": "858be5219c4df51ce238f438fb9a408eb898b68f",
      "new_mode": 33188,
      "new_path": "generator/dawn_json_generator.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2a42db2a32c24b999c0bd2e9edc0e3ae7b432764",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn_native/ChainUtils.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce4659173d46cb3745721386124dd26485397ea4",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn_native/ChainUtils.h"
    },
    {
      "type": "modify",
      "old_id": "803ee30246b4f2d7959eea9f3f36c4fc67525a68",
      "old_mode": 33188,
      "old_path": "src/dawn_native/BUILD.gn",
      "new_id": "2a5a59b436dc2a012eed127acb29be3dcde6f462",
      "new_mode": 33188,
      "new_path": "src/dawn_native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "c09bdfb8e9172a0b07816e960510a0299a2c4754",
      "old_mode": 33188,
      "old_path": "src/dawn_native/RenderPipeline.cpp",
      "new_id": "c32034dd01a88cd646e4591d4b99b444201e9ed5",
      "new_mode": 33188,
      "new_path": "src/dawn_native/RenderPipeline.cpp"
    },
    {
      "type": "modify",
      "old_id": "a9cceac5b35d4eb0c4fcc0f9fc7d6779a087335f",
      "old_mode": 33188,
      "old_path": "src/dawn_native/ShaderModule.cpp",
      "new_id": "5e5762fced3121ccaa63bd332d8cdce62d3b1b38",
      "new_mode": 33188,
      "new_path": "src/dawn_native/ShaderModule.cpp"
    },
    {
      "type": "modify",
      "old_id": "4afe05ed4549673d6363f68adeb8e9fa182cb04e",
      "old_mode": 33188,
      "old_path": "src/dawn_native/Surface.cpp",
      "new_id": "9b317bcdb866d6733d9a40c2dd8faded18b2d011",
      "new_mode": 33188,
      "new_path": "src/dawn_native/Surface.cpp"
    },
    {
      "type": "modify",
      "old_id": "faf4b224f993a38877e55694edf61ccc41962809",
      "old_mode": 33188,
      "old_path": "src/tests/BUILD.gn",
      "new_id": "284cc41cda2c01f01c70569ad558eafcf40fce74",
      "new_mode": 33188,
      "new_path": "src/tests/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2d437298f83121c302a2ca5bd20be3252a7e6678",
      "new_mode": 33188,
      "new_path": "src/tests/unittests/ChainUtilsTests.cpp"
    }
  ]
}
