)]}'
{
  "commit": "dab46d196ab452d399e04d382854e758841b33bd",
  "tree": "8ae3aa15e14b8b3b4844fecd63c11d987d0b73a6",
  "parents": [
    "2a73eacc13f487b86056ef52c791f885c5e0ff17"
  ],
  "author": {
    "name": "Nate Bosch",
    "email": "nbosch@google.com",
    "time": "Wed May 25 18:32:25 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 25 18:32:25 2022 -0700"
  },
  "message": "Implement `sample`, add `longPoll` to `buffer` (dart-lang/stream_transform#147)\n\nCloses dart-lang/stream_transform#145\r\n\r\nAdd `longPoll` support to `aggregateSample`. This method is a package\r\nprivate implementation detail.\r\n- Refactor to named arguments to make changes smoother.\r\n- Add `longPoll` boolean argument and conditional behavior in each\r\n  stream callback.\r\n- Add `onEmpty` callback to let the caller decide whether to emit some\r\n  default (empty list in the `buffer` case) or not emit at all (in the\r\n  `sample` case) for triggers which do no set up a long poll and have\r\n  no prior aggregated events.\r\n- Switch `waitingForTrigger` to the inverted condition `activeLongPoll`\r\n  since it is a closer match to how the behavior is described in the docs.\r\n\r\nAdd `longPoll` argument to `buffer` and update the doc to describe the\r\nconditional behavior. Add a section in the docs discussing the end of\r\nstream behavior.\r\n\r\nAdd a `sample` method which is similar to `buffer`. Cross reference each\r\nmethod in the docs.\r\n\r\nUpdate the comparison table with Rx. Show that `buffer` is equivalent to\r\n`buffer(longPoll: false)`, that `sample` is `sampel(longPoll: false)`. I\r\ncannot find an equivalent Rx method to the `longPoll: true` behavior.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d3c71c643d074b033bd08f40bb792a054c82e961",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/README.md",
      "new_id": "ee0ac2ee58c71d601bc198df2c512e1aa6806afa",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/README.md"
    },
    {
      "type": "modify",
      "old_id": "0eea768ffd137d8e51cc78cf57e0e54b705fdd8e",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/lib/src/aggregate_sample.dart",
      "new_id": "aa47c1e687d655337699fd27a4704a20f011b0bd",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/lib/src/aggregate_sample.dart"
    },
    {
      "type": "modify",
      "old_id": "f6022525f13121c24303a614fcb8e40dcdef319c",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/lib/src/async_map.dart",
      "new_id": "c7898274e0477aa3da6239e644a1566d7101034d",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/lib/src/async_map.dart"
    },
    {
      "type": "modify",
      "old_id": "b29f4f5617474f42f849c3f23c03c41c236e55ef",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/lib/src/rate_limit.dart",
      "new_id": "1d3133917c590b28e4031a25b4ad77bd75531f87",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/lib/src/rate_limit.dart"
    },
    {
      "type": "modify",
      "old_id": "fc17f4ba3fca78e28590ee5587334e9ff0e2c1d9",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/test/buffer_test.dart",
      "new_id": "1675c287eb5a5fe6f52e7ec8d6436c165b1cc46f",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/test/buffer_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66ca09db81c8d6e5dc4a69118041a915af6d8c73",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/test/sample_test.dart"
    }
  ]
}
