)]}'
{
  "commit": "60ccc1f5deb671e95d2a6cc761f6d03f3c8ade07",
  "tree": "324ae6c030f5daa60a5b2a9c64322b0ab77e8140",
  "parents": [
    "07a8fe6a235a91e9ad9bd69fae25a3ed07162ac0"
  ],
  "author": {
    "name": "evalon32",
    "email": "34560232+evalon32@users.noreply.github.com",
    "time": "Fri Jan 10 18:25:25 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jan 10 15:25:25 2025 -0800"
  },
  "message": "feat: support std::string_view in Value API (#1584)\n\nThis adds direct support for `std::string_view` when available (C++17\r\nand above). The current API can be used with `std::string_view` via the\r\nlow-level two-pointer methods, but is not ergonomic. E.g., compare:\r\n\r\n```\r\nJson::Value node;\r\nstd::string foo, bar, baz;\r\nstd::string_view foo_sv, bar_sv, baz_sv;\r\n\r\n// Efficient \u0026 readable:\r\nnode[foo][bar][baz];\r\n// Less efficient, less readable:\r\nnode[std::string(foo_sv)][std::string(bar_sv)][std::string(baz_sv)];\r\n// Efficient, but a lot less readable:\r\n*node.demand(foo_sv.data(), foo_sv.data() + foo_sv.size())\r\n    -\u003edemand(bar_sv.data(), bar_sv.data() + bar_sv.size())\r\n    -\u003edemand(baz_sv.data(), baz_sv.data() + baz_sv.size())\r\n// After this change, efficient \u0026 readable:\r\nnode[foo_sv][bar_sv][baz_sv];\r\n```\r\n\r\n*   The constructor can take a `std::string_view` parameter. The existing\r\n    overloads taking `const std::string\u0026` and `const char*` are still necessary\r\n    to support assignment from those types.\r\n*   `operator[]`, `get()`, `isMember()` and `removeMember()` take a\r\n    `std::string_view` parameter. This supersedes the overloads taking\r\n    `const std::string\u0026` and `const char*`. The overloads taking a pair of\r\n    pointers (begin, end) are preserved for source compatibility.\r\n*   `getString()` has an overload with a `std::string_view` output parameter.\r\n    The one with a pair of pointers is preserved for source compatibility.\r\n\r\nSigned-off-by: Lev Kandel \u003clmakhlis@google.com\u003e\r\nCo-authored-by: Jordan Bayles \u003cbayles.jordan@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "073ed30d911f645f8e3f717a3799ad1f49297c1f",
      "old_mode": 33188,
      "old_path": "include/json/value.h",
      "new_id": "3074932981020354a38ee8302ae1b00bc0f46a69",
      "new_mode": 33188,
      "new_path": "include/json/value.h"
    },
    {
      "type": "modify",
      "old_id": "d9dee50cb67ae375466ff3bb334da29213902c72",
      "old_mode": 33188,
      "old_path": "src/lib_json/json_value.cpp",
      "new_id": "527d716f24d34df3400c1c2fc54d67016972c624",
      "new_mode": 33188,
      "new_path": "src/lib_json/json_value.cpp"
    }
  ]
}
