ruchei-itertools 0.0.0-a.3

async itertools, subproject of ruchei
Documentation
# State of `Iterator` and `Stream` methods

> [!NOTE]
> current document hasn't been thoroughly checked yet

versions

| crate              | version  |
| ------------------ | -------: |
| `core`             | `1.90.0` |
| `itertools`        | `0.14.0` |
| `futures-lite`     | `2.6.1`  |
| `futures-util`     | `0.3.31` |
| `tokio-stream`     | `0.1.17` |
| `ruchei-itertools` | unstable |
| `async-itertools`  | unstable |

methods

\`…' here means the base `trait`s (or extension `trait`s in base crate) implement those methods

|                          | `core`  | `itertools` | `futures-util` | `tokio-stream` | `futures-lite` | `ruchei-itertools` | `async-itertools` |
| ------------------------ | :-----: | :---------: | :------------: | :------------: | :------------: | :----------------: | :---------------: |
| `advance_by`             | ✓ | …      |                |                |                | ✓            |                   |
| `all`                    | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `all_equal`              |         | ✓     |                |                |                | ✓            |                   |
| `all_equal_value`        |         | ✓     |                |                |                |                    |                   |
| `all_unique`             |         | ✓     |                |                |                |                    |                   |
| `and_then`               |         |             | ✓        |                |                | …             |                   |
| `any`                    | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `array_chunks`           | ✓ | …      |                |                |                |                    |                   |
| `array_combinations`     |         | ✓     |                |                |                |                    |                   |
| `batching`               |         | ✓     |                |                |                |                    |                   |
| `buffer_local`           |         |             | ✓        |                |                | …             |                   |
| `buffer_unordered`       |         |             | ✓        |                |                | …             |                   |
| `by_ref`                 | ✓ | …      | ✓        |                |                | …             |                   |
| `cartesian_product`      |         | ✓     |                |                |                |                    |                   |
| `catch_unwind`           |         |             | ✓        |                |                | …             |                   |
| `chain`                  | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `chunk_by`               |         | ✓     |                |                |                |                    |                   |
| `chunks`                 |         | ✓     | ✓        |                |                | …             |                   |
| `chunks_timeout`         |         |             |                | ✓        |                |                    |                   |
| `circulat_tuple_windows` |         | ✓     |                |                |                |                    |                   |
| `cloned`                 | ✓ | …      |                |                | ✓        |                    | …            |
| `cmp`                    | ✓ | …      |                |                |                | ✓            |                   |
| `cmp_by`                 | ✓ | …      |                |                |                | ✓            |                   |
| `coalesce`               |         | ✓     |                |                |                |                    |                   |
| `collect`                | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `collect_array`          |         | ✓     |                |                |                |                    |                   |
| `collect_into`           | ✓ | …      |                |                |                |                    |                   |
| `collect_tuple`          |         | ✓     |                |                |                |                    |                   |
| `collect_vec`            |         | ✓     |                |                |                | ✓            |                   |
| `combinations`           |         | ✓     |                |                |                |                    |                   |
| `combinations_with_...`  |         | ✓     |                |                |                |                    |                   |
| `concat`                 |         | ✓     | ✓        |                |                | …             |                   |
| `copied`                 | ✓ | …      |                |                | ✓        |                    | …            |
| `count`                  | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `counts`                 |         | ✓     |                |                |                |                    |                   |
| `counts_by`              |         | ✓     |                |                |                |                    |                   |
| `cycle`                  | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `dedup`                  |         | ✓     |                |                |                |                    |                   |
| `dedup_by`               |         | ✓     |                |                |                |                    |                   |
| `dedup_by_with_count`    |         | ✓     |                |                |                |                    |                   |
| `dedup_eager`            |         | ✓     |                |                |                | ✓            |                   |
| `dedup_with_count`       |         | ✓     |                |                |                |                    |                   |
| `drain`                  |         |             |                |                | ✓        |                    | …            |
| `dropping`               |         | ✓     |                |                |                |                    |                   |
| `dropping_back`          |         | ✓     |                |                |                |                    |                   |
| `duplicates`             |         | ✓     |                |                |                |                    |                   |
| `duplicates_by`          |         | ✓     |                |                |                |                    |                   |
| `enumerate`              | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `eq`                     | ✓ | …      |                |                |                |                    |                   |
| `eq_by`                  | ✓ | …      |                |                |                |                    |                   |
| `err_into`               |         |             | ✓        |                |                | …             |                   |
| `exactly_one`            |         | ✓     |                |                |                |                    |                   |
| `filter`                 | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `filter_map`             | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `filter_map_ok`          |         | ✓     |                |                |                |                    |                   |
| `filter_ok`              |         | ✓     |                |                |                |                    |                   |
| `find`                   | ✓ | …      |                |                | ✓        |                    | …            |
| `find_map`               | ✓ | …      |                |                | ✓        |                    | …            |
| `find_or_first`          |         | ✓     |                |                |                |                    |                   |
| `find_or_last`           |         | ✓     |                |                |                |                    |                   |
| `find_position`          |         | ✓     |                |                |                |                    |                   |
| `flat_map`               | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `flap_map_unordered`     |         |             | ✓        |                |                | …             |                   |
| `flatten`                | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `flatten_ok`             |         | ✓     |                |                |                |                    |                   |
| `flatten_unordered`      |         |             | ✓        |                |                | …             |                   |
| `fold`                   | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `fold_ok`                |         | ✓     |                |                |                |                    |                   |
| `fold_options`           |         | ✓     |                |                |                |                    |                   |
| `fold_while`             |         | ✓     |                |                |                |                    |                   |
| `for_each`               | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `for_each_concurrent`    |         |             | ✓        |                |                | …             |                   |
| `format`                 |         | ✓     |                |                |                |                    |                   |
| `format_with`            |         | ✓     |                |                |                |                    |                   |
| `forward`                |         |             | ✓        |                |                | …             |                   |
| `fuse`                   | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `ge`                     | ✓ | …      |                |                |                |                    |                   |
| `get`                    |         | ✓     |                |                |                |                    |                   |
| `gt`                     | ✓ | …      |                |                |                |                    |                   |
| `inspect`                | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `inspect_err`            |         |             | ✓        |                |                | …             |                   |
| `inspect_ok`             |         |             | ✓        |                |                | …             |                   |
| `interleave`             |         | ✓     |                | [^tm]          |                | ✓            |                   |
| `interleave_shortest`    |         | ✓     |                |                |                |                    |                   |
| `intersperse`            | ✓ | ✓     |                |                |                |                    |                   |
| `intersperse_with`       | ✓ | ✓     |                |                |                |                    |                   |
| `into_async_read`        |         |             | ✓        |                |                | …             |                   |
| `into_future`            |         |             | ✓        |                |                | …             |                   |
| `into_group_map`         |         | ✓     |                |                |                |                    |                   |
| `into_group_map_by`      |         | ✓     |                |                |                |                    |                   |
| `into_grouping_map`      |         | ✓     |                |                |                |                    |                   |
| `into_grouping_map_by`   |         | ✓     |                |                |                |                    |                   |
| `is_partitioned`         | ✓ | …      |                |                |                |                    |                   |
| `is_sorted`              | ✓ | …      |                |                |                |                    |                   |
| `is_sorted_by`           | ✓ | …      |                |                |                |                    |                   |
| `is_sorted_by_key`       | ✓ | …      |                |                |                |                    |                   |
| `join`                   |         | ✓     |                |                |                |                    |                   |
| `k_largest`              |         | ✓     |                |                |                |                    |                   |
| `k_largest_by`           |         | ✓     |                |                |                |                    |                   |
| `k_largest_by_key`       |         | ✓     |                |                |                |                    |                   |
| `k_largest_relaxed`      |         | ✓     |                |                |                |                    |                   |
| `k_largest_relaxed_by`   |         | ✓     |                |                |                |                    |                   |
| `k_largest_relaxed_...`  |         | ✓     |                |                |                |                    |                   |
| `k_smallest`             |         | ✓     |                |                |                |                    |                   |
| `k_smallest_by`          |         | ✓     |                |                |                |                    |                   |
| `k_smallest_by_key`      |         | ✓     |                |                |                |                    |                   |
| `k_smallest_relaxed`     |         | ✓     |                |                |                |                    |                   |
| `k_smallest_relaxed_by`  |         | ✓     |                |                |                |                    |                   |
| `k_smallest_relaxed_...` |         | ✓     |                |                |                |                    |                   |
| `kmerge`                 |         | ✓     |                |                |                |                    |                   |
| `kmerge_by`              |         | ✓     |                |                |                |                    |                   |
| `last`                   | ✓ | …      |                |                | ✓        |                    | …            |
| `le`                     | ✓ | …      |                |                |                |                    |                   |
| `left_stream`            |         |             | ✓        |                |                | …             |                   |
| `lt`                     | ✓ | …      |                |                |                |                    |                   |
| `map`                    | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `map_err`                |         |             | ✓        |                |                | …             |                   |
| `map_into`               |         | ✓     |                |                |                |                    |                   |
| `map_ok`                 |         | ✓     |                |                |                |                    |                   |
| `map_while`              | ✓ | …      |                | ✓        | ✓        |                    | …            |
| `max`                    | ✓ | …      |                |                |                |                    |                   |
| `max_by`                 | ✓ | …      |                |                |                |                    |                   |
| `max_by_key`             | ✓ | …      |                |                |                |                    |                   |
| `max_set`                |         | ✓     |                |                |                |                    |                   |
| `max_set_by`             |         | ✓     |                |                |                |                    |                   |
| `max_set_by_key`         |         | ✓     |                |                |                |                    |                   |
| `merge`                  |         | ✓     |                | [^tm]          |                |                    |                   |
| `merge_by`               |         | ✓     |                |                |                |                    |                   |
| `merge_join_by`          |         | ✓     |                |                |                |                    |                   |
| `min`                    | ✓ | …      |                |                |                |                    |                   |
| `min_by`                 | ✓ | …      |                |                |                |                    |                   |
| `min_by_key`             | ✓ | …      |                |                |                |                    |                   |
| `min_set`                |         | ✓     |                |                |                |                    |                   |
| `min_set_by`             |         | ✓     |                |                |                |                    |                   |
| `min_set_by_key`         |         | ✓     |                |                |                |                    |                   |
| `minmax`                 |         | ✓     |                |                |                |                    |                   |
| `minmax_by`              |         | ✓     |                |                |                |                    |                   |
| `minmax_by_key`          |         | ✓     |                |                |                |                    |                   |
| `multi_cartesian_...`    |         | ✓     |                |                |                |                    |                   |
| `multipeek`              |         | ✓     |                |                |                |                    |                   |
| `multiunzip`             |         | ✓     |                |                |                |                    |                   |
| `ne`                     | ✓ | …      |                |                |                |                    |                   |
| `next`                   | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `next_array`             |         | ✓     |                |                |                |                    |                   |
| `next_chunk`             | ✓ | …      |                |                |                |                    |                   |
| `next_tuple`             |         | ✓     |                |                |                |                    |                   |
| `nth`                    | ✓ | …      |                |                | ✓        |                    | …            |
| `or`                     |         |             |                |                | ✓        |                    | …            |
| `or_else`                |         |             | ✓        |                |                | …             |                   |
| `pad_using`              |         | ✓     |                |                |                |                    |                   |
| `partial_cmp`            | ✓ | …      |                |                |                | ✓            |                   |
| `partial_cmp_by`         | ✓ | …      |                |                |                | ✓            |                   |
| `partition`              | ✓ | …      |                |                | ✓        |                    | …            |
| `partition_in_place`     | ✓ | …      |                |                |                |                    |                   |
| `partition_map`          |         | ✓     |                |                |                |                    |                   |
| `partition_result`       |         | ✓     |                |                |                |                    |                   |
| `peekable`               | ✓ | …      | ✓        | ✓        |                | …             |                   |
| `peeking_take_while`     |         | ✓     |                |                |                |                    |                   |
| `permutations`           |         | ✓     |                |                |                |                    |                   |
| `position`               | ✓ | ✓     |                |                | ✓        |                    | …            |
| `position_max`           |         | ✓     |                |                |                |                    |                   |
| `position_max_by`        |         | ✓     |                |                |                |                    |                   |
| `position_max_by_key`    |         | ✓     |                |                |                |                    |                   |
| `position_min`           |         | ✓     |                |                |                |                    |                   |
| `position_min_by`        |         | ✓     |                |                |                |                    |                   |
| `position_min_by_key`    |         | ✓     |                |                |                |                    |                   |
| `position_minmax`        |         | ✓     |                |                |                |                    |                   |
| `position_minmax_by`     |         | ✓     |                |                |                |                    |                   |
| `position_minmax_by_key` |         | ✓     |                |                |                |                    |                   |
| `positions`              |         | ✓     |                |                |                |                    |                   |
| `powerset`               |         | ✓     |                |                |                |                    |                   |
| `process_results`        |         | ✓     |                |                |                |                    |                   |
| `product`                | ✓ | …      |                |                |                |                    |                   |
| `product1`               |         | ✓     |                |                |                |                    |                   |
| `race`                   |         |             |                |                | ✓        |                    | …            |
| `ready_chunks`           |         |             | ✓        |                |                | …             |                   |
| `reduce`                 | ✓ | …      |                |                |                |                    |                   |
| `rev`                    | ✓ | …      |                |                |                |                    |                   |
| `right_stream`           |         |             | ✓        |                |                | …             |                   |
| `rposition`              | ✓ | …      |                |                |                |                    |                   |
| `scan`                   | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `select_next_some`       |         |             | ✓        |                |                | …             |                   |
| `set_from`               |         | ✓     |                |                |                |                    |                   |
| `size_hint`              | ✓ | …      | …         | …         |                | …             |                   |
| `skip`                   | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `skip_while`             | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `sorted`                 |         | ✓     |                |                |                |                    |                   |
| `sorted_by`              |         | ✓     |                |                |                |                    |                   |
| `sorted_by_cached_key`   |         | ✓     |                |                |                |                    |                   |
| `sorted_by_key`          |         | ✓     |                |                |                |                    |                   |
| `sorted_unstable`        |         | ✓     |                |                |                |                    |                   |
| `sorted_unstable_by`     |         | ✓     |                |                |                |                    |                   |
| `sorted_unstable_by_key` |         | ✓     |                |                |                |                    |                   |
| `split`                  |         |             | ✓        |                |                | …             |                   |
| `step_by`                | ✓ | …      |                |                | ✓        |                    | …            |
| `sum`                    | ✓ | …      |                |                |                |                    |                   |
| `sum1`                   |         | ✓     |                |                |                |                    |                   |
| `tail`                   |         | ✓     |                |                |                |                    |                   |
| `take`                   | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `take_until`             |         |             | ✓        |                |                | …             |                   |
| `take_while`             | ✓ | …      | ✓        | ✓        | ✓        | …             | …            |
| `take_while_inclusive`   |         | ✓     |                |                |                |                    |                   |
| `take_while_ref`         |         | ✓     |                |                |                |                    |                   |
| `tee`                    |         | ✓     |                |                |                |                    |                   |
| `then`                   |         |             | ✓        | ✓        | ✓        | …             | …            |
| `throttle`               |         |             |                | ✓        |                |                    |                   |
| `timeout`                |         |             |                | ✓        |                |                    |                   |
| `timeout_repeating`      |         |             |                | ✓        |                |                    |                   |
| `tree_reduce`            |         | ✓     |                |                |                |                    |                   |
| `try_all`                |         |             | ✓        |                |                | …             |                   |
| `try_any`                |         |             | ✓        |                |                | …             |                   |
| `try_buffer_unordered`   |         |             | ✓        |                |                | …             |                   |
| `try_buffered`           |         |             | ✓        |                |                | …             |                   |
| `try_chunks`             |         |             | ✓        |                |                | …             |                   |
| `try_collect`            | ✓ | ✓     | ✓        |                | ✓        | …             | …            |
| `try_concat`             |         |             | ✓        |                |                | …             |                   |
| `try_filter`             |         |             | ✓        |                |                | …             |                   |
| `try_filter_map`         |         |             | ✓        |                |                | …             |                   |
| `try_find`               | ✓ | …      |                |                |                |                    |                   |
| `try_flatten`            |         |             | ✓        |                |                | …             |                   |
| `try_flatten_unordered`  |         |             | ✓        |                |                | …             |                   |
| `try_fold`               | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `try_for_each`           | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `try_for_each_...`       |         |             | ✓        |                |                | …             |                   |
| `try_len`                |         | ✓     |                |                |                |                    |                   |
| `try_next`               |         |             |                | ✓        | ✓        |                    | …            |
| `try_ready_chunks`       |         |             | ✓        |                |                | …             |                   |
| `try_skip_while`         |         |             | ✓        |                |                | …             |                   |
| `try_take_while`         |         |             | ✓        |                |                | …             |                   |
| `try_zip_lazy`           |         |             |                |                |                | ✓            |                   |
| `tuple_combinations`     |         | ✓     |                |                |                |                    |                   |
| `tuple_windows`          |         | ✓     |                |                |                |                    |                   |
| `tuples`                 |         | ✓     |                |                |                |                    |                   |
| `unique`                 |         | ✓     |                |                |                |                    |                   |
| `unique_by`              |         | ✓     |                |                |                |                    |                   |
| `unzip`                  | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `update`                 |         | ✓     |                |                |                |                    |                   |
| `while_some`             |         | ✓     |                |                |                |                    |                   |
| `with_position`          |         | ✓     |                |                |                |                    |                   |
| `zip`                    | ✓ | …      | ✓        |                | ✓        | …             | …            |
| `zip_eq`                 |         | ✓     |                |                |                |                    |                   |
| `zip_lazy`               |         |             |                |                |                | ✓            |                   |
| `zip_longest`            |         | ✓     |                |                |                | ✓            | ✓           |

[^tm]: `tokio` calls `interleave` \``merge`'