)]}'
{
  "commit": "17a08eeca072d101f9155a8dafb41bafe75ee58e",
  "tree": "d34b83e569663a81a3aec08d21b33cd831b3fe0c",
  "parents": [
    "9c777ce8a58bdd6fce915f97a96b22e1adf753ac"
  ],
  "author": {
    "name": "Dennis Shen",
    "email": "dzshen@google.com",
    "time": "Fri Jul 14 01:32:50 2023 +0000"
  },
  "committer": {
    "name": "Dennis Shen",
    "email": "dzshen@google.com",
    "time": "Fri Jul 14 11:40:49 2023 +0000"
  },
  "message": "aconfig: update c/c++ codegen\n\nTwo major changes to c/c++ codegen\n\n(1) explicit setter for each flag instead of a generic flag setter\nvoid override_flag(std::string name, bool val) is replaced with\n\nvoid \u003cflag name\u003e(bool val) for each flag name\n\nThis has several advantages:\n  (a) generated code is more c++ idomatic\n  (b) no longer need to create flag name string constants\n  (c) any typo in the code is caught early in the build time\n\n(2) remove flag setter and flag override reset methods/functions when\ngenerating code targets for production. If developers want to update\ntheir main function to take command line arg for flag overrides, they\ncan use compile time macros to decide if the flag override code should\nbe included.\n\nBug: b/279483801\nTest: atest aconfig.test\nChange-Id: I6141f7f979b32fe0426154d578edeb997ae5ff7c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "979b8ad893c72b939186fabece515890b00624a0",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/codegen_cpp.rs",
      "new_id": "ff9e8ef0bcb5860016605551a86e0b06d068486b",
      "new_mode": 33188,
      "new_path": "tools/aconfig/src/codegen_cpp.rs"
    },
    {
      "type": "modify",
      "old_id": "08af86030507e75fb6c9d3c1d27e0e61082cf46d",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/c_exported_header.template",
      "new_id": "c22b048dcf4daf030ea8faf97362c46f4786006c",
      "new_mode": 33188,
      "new_path": "tools/aconfig/templates/c_exported_header.template"
    },
    {
      "type": "modify",
      "old_id": "18da29966e14f30c6df0741a02cd1c80705df4ea",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/c_source_file.template",
      "new_id": "3d2482d62ea9945387a88a42c1ea8640acde35d1",
      "new_mode": 33188,
      "new_path": "tools/aconfig/templates/c_source_file.template"
    },
    {
      "type": "modify",
      "old_id": "ee8f0dddac205d874497af46f691c03db6b97c52",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/cpp_exported_header.template",
      "new_id": "e45548e9a3e32097a431f2afe28981ecd3648b7b",
      "new_mode": 33188,
      "new_path": "tools/aconfig/templates/cpp_exported_header.template"
    },
    {
      "type": "modify",
      "old_id": "1b4f3367076e2f2720aee1f4a60ed118cfec5d9f",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/cpp_source_file.template",
      "new_id": "d267f03117cf9afcedc7ba0b489e9ceaec0ab153",
      "new_mode": 33188,
      "new_path": "tools/aconfig/templates/cpp_source_file.template"
    },
    {
      "type": "modify",
      "old_id": "a24116b7e151bd972def47606a4743cb07cd9bad",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/cpp_test_flag_provider.template",
      "new_id": "afa56cff81ea17ac2713c0bb63dfafc3a931f2ab",
      "new_mode": 33188,
      "new_path": "tools/aconfig/templates/cpp_test_flag_provider.template"
    }
  ]
}
