)]}'
{
  "commit": "12e974f892c5e242528310dbbb80925f4439da8b",
  "tree": "fcae759a84e9e35e9509d6511e29dc96f97a2fd1",
  "parents": [
    "c81f1892c232230ad62877149aa9c94048b5dbdc"
  ],
  "author": {
    "name": "eanderton",
    "email": "eric.t.anderton@gmail.com",
    "time": "Mon Sep 08 22:08:28 2014 -0400"
  },
  "committer": {
    "name": "eanderton",
    "email": "eric.t.anderton@gmail.com",
    "time": "Mon Sep 08 22:08:28 2014 -0400"
  },
  "message": "Query interface with callback functions\n\n* Added public Query interface\n* Added filter function callback support\n* Added \"script\" function callback support\n\nQueries are generated via Compile(), which then may be run via Execute()\nas many times as needed.  Much like compiling a regex, this is done to\nelide the need to re-parse and build the funciton tree for each\nexecution.\n\nThe distinction between \u0027filter\u0027 and \u0027script\u0027 is borrowed from their\nsyntactic equivalents in jsonpath.  Right now, these accept no arguments\nin the query, and instead merely pass the current node to the callback.\nFilters return a bool and determine if the node is kept or culled out.\n\u0027Scripts\u0027 return a string or an in64, which is in turn used in an index\nor key filter (respectively) on the current node\u0027s data.\n\nA few callbacks are provided by default, with the ability to add\nadditional callbacks before calling Execute() on a compiled query.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ffde74980b272f0910fd15615d3158c04ce0033a",
      "old_mode": 33188,
      "old_path": "jpath/match.go",
      "new_id": "345bbf4d86825dc0dc813b2bf0205a56f30a172e",
      "new_mode": 33188,
      "new_path": "jpath/match.go"
    },
    {
      "type": "modify",
      "old_id": "514962b900060d871f99bbcdd53ab90aa70286df",
      "old_mode": 33188,
      "old_path": "jpath/match_test.go",
      "new_id": "9509ae9aa4c1152ceb813d24345093ad0ada6612",
      "new_mode": 33188,
      "new_path": "jpath/match_test.go"
    },
    {
      "type": "modify",
      "old_id": "7b842a44bb0eb1342bdff40ab7e4e0640e6acbd5",
      "old_mode": 33188,
      "old_path": "jpath/parser.go",
      "new_id": "f59ba0cfbc3860fec8b020f320a955804f9e81ae",
      "new_mode": 33188,
      "new_path": "jpath/parser.go"
    },
    {
      "type": "modify",
      "old_id": "31039704d505548cc05fb3a1bb446888a5253126",
      "old_mode": 33188,
      "old_path": "jpath/parser_test.go",
      "new_id": "6d3c9412f275113840909826c02e803d2a0ef10b",
      "new_mode": 33188,
      "new_path": "jpath/parser_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "082fa696065f2320800bf5c9dd3d726f71789f8d",
      "new_mode": 33188,
      "new_path": "jpath/query.go"
    }
  ]
}
