{"id":18099926,"url":"https://github.com/rossmacarthur/itermore","last_synced_at":"2025-04-13T16:09:20.429Z","repository":{"id":62441213,"uuid":"414364217","full_name":"rossmacarthur/itermore","owner":"rossmacarthur","description":"🤸 More iterator adaptors","archived":false,"fork":false,"pushed_at":"2025-03-21T16:54:00.000Z","size":174,"stargazers_count":7,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2025-04-13T16:09:09.561Z","etag":null,"topics":["chunks","crate","iterator","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rossmacarthur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-06T20:44:05.000Z","updated_at":"2025-03-21T16:54:04.000Z","dependencies_parsed_at":"2024-12-08T12:24:58.728Z","dependency_job_id":"69f392fb-65a8-41c1-a102-c7cbd68940b9","html_url":"https://github.com/rossmacarthur/itermore","commit_stats":{"total_commits":38,"total_committers":1,"mean_commits":38.0,"dds":0.0,"last_synced_commit":"3ebec68b0906b62b84e8e23a0e59ef702b21d605"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossmacarthur%2Fitermore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossmacarthur%2Fitermore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossmacarthur%2Fitermore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossmacarthur%2Fitermore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rossmacarthur","download_url":"https://codeload.github.com/rossmacarthur/itermore/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741204,"owners_count":21154255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chunks","crate","iterator","rust"],"created_at":"2024-10-31T21:11:46.631Z","updated_at":"2025-04-13T16:09:20.420Z","avatar_url":"https://github.com/rossmacarthur.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Generated by cargo-onedoc v0.2.0. DO NOT EDIT. --\u003e\n\n# itermore\n\n[![Crates.io Version](https://badgers.space/crates/version/itermore)](https://crates.io/crates/itermore)\n[![Docs.rs Latest](https://badgers.space/badge/docs.rs/latest/blue)](https://docs.rs/itermore)\n[![Build Status](https://badgers.space/github/checks/rossmacarthur/itermore?label=build)](https://github.com/rossmacarthur/itermore/actions/workflows/build.yaml)\n\n🤸‍♀️ More iterator adaptors.\n\nThis crate provides some useful iterator adaptors and functions. Unlike\n[`itertools`](https://docs.rs/itertools) this crate provides a separate\nextension trait for each adaptor. Additionally, each type of adaptor is\nfeature flagged so you only have to compile the features you need.\n\n## Getting started\n\nAdd the crate to Cargo manifest.\n\n```sh\ncargo add itermore --features full\n```\n\nAnd bring the extension traits into scope.\n\n```rust\nuse itermore::prelude::*;\n```\n\nNow you can use extension methods like [`array_windows`][array_windows] on any iterator.\n\n```rust\nfor [a, b, c] in iter.array_windows() {\n    println!(\"{} {} {}\", a, b, c)\n}\n// Outputs\n//    1 2 3\n//    2 3 4\n//    3 4 5\n```\n\nIt is recommended to only enable the features that you need. For example if\nyou only want the [`array_combinations`][array_combinations] adaptor you would add the following\nto your Cargo manifest.\n\n```toml\n[dependencies]\nitermore = { version = \"*\", features = [\"array_combinations\"]}\n```\n\n## Provided functionality\n\n### Methods\n\n- [`collect_array`][collect_array]: Collects an iterator into an array.\n- [`min_max`][min_max] and friends: Returns the minimum and maximum element of an\n  iterator.\n- [`next_chunk`][next_chunk]: Returns the next `N` elements of the iterator as an array.\n- [`sorted`][sorted] and friends: Returns a new iterator with all elements sorted.\n\n### Adaptors\n\n- [`array_chunks`][array_chunks] returns an iterator over `N` elements of the iterator at\n  a time.\n- [`array_windows`][array_windows] returns an iterator over all contiguous windows of\n  length `N`.\n- [`array_combinations`][array_combinations] returns an iterator over `K` length combinations of\n  all the elements in the underlying iterator.\n- [`array_combinations_with_reps`][array_combinations_with_reps] returns an iterator over `K` length\n  combinations with repetitions/replacements of all the elements in the\n  underlying iterator.\n- [`cartesian_product`][cartesian_product] returns an iterator over the cartesian product of\n  the element sets of two iterators.\n- [`circular_array_windows`][circular_array_windows] returns an iterator over all contiguous windows\n  of length `N` that wraps around at the end.\n- [`combinations`][combinations] returns an iterator over `k` length combinations of all\n  the elements in the underlying iterator.\n- [`combinations_with_reps`][combinations_with_reps] returns an iterator over `k` length\n  combinations with repetitions/replacements of all the elements in the\n  underlying iterator.\n\n## License\n\nThis project is distributed under the terms of both the MIT license and the Apache License (Version 2.0).\n\nSee [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.\n\n\n[array_chunks]: https://docs.rs/itermore/latest/itermore/trait.IterArrayChunks.html#method.array_chunks\n[array_combinations]: https://docs.rs/itermore/latest/itermore/trait.IterArrayCombinations.html#method.array_combinations\n[array_combinations_with_reps]: https://docs.rs/itermore/latest/itermore/trait.IterArrayCombinationsWithReps.html#method.array_combinations_with_reps\n[array_windows]: https://docs.rs/itermore/latest/itermore/trait.IterArrayWindows.html#method.array_windows\n[cartesian_product]: https://docs.rs/itermore/latest/itermore/trait.IterCartesianProduct.html#method.cartesian_product\n[circular_array_windows]: https://docs.rs/itermore/latest/itermore/trait.IterCircularArrayWindows.html#method.circular_array_windows\n[collect_array]: https://docs.rs/itermore/latest/itermore/trait.IterCollectArray.html#method.collect_array\n[combinations]: https://docs.rs/itermore/latest/itermore/trait.IterCombinations.html#method.combinations\n[combinations_with_reps]: https://docs.rs/itermore/latest/itermore/trait.IterCombinationsWithReps.html#method.combinations_with_reps\n[min_max]: https://docs.rs/itermore/latest/itermore/trait.IterMinMax.html#method.min_max\n[next_chunk]: https://docs.rs/itermore/latest/itermore/trait.IterNextChunk.html#method.next_chunk\n[sorted]: https://docs.rs/itermore/latest/itermore/trait.IterSorted.html#method.sorted\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frossmacarthur%2Fitermore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frossmacarthur%2Fitermore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frossmacarthur%2Fitermore/lists"}