README.md
1# Itertools
2
3Extra iterator adaptors, functions and macros.
4
5Please read the [API documentation here](https://docs.rs/itertools/).
6
7[![build_status](https://github.com/rust-itertools/itertools/actions/workflows/ci.yml/badge.svg)](https://github.com/rust-itertools/itertools/actions)
8[![crates.io](https://img.shields.io/crates/v/itertools.svg)](https://crates.io/crates/itertools)
9
10How to use with Cargo:
11
12```toml
13[dependencies]
14itertools = "0.10.2"
15```
16
17How to use in your crate:
18
19```rust
20use itertools::Itertools;
21```
22
23## How to contribute
24
25- Fix a bug or implement a new thing
26- Include tests for your new feature, preferably a QuickCheck test
27- Make a Pull Request
28
29For new features, please first consider filing a PR to [rust-lang/rust](https://github.com/rust-lang/rust),
30adding your new feature to the `Iterator` trait of the standard library, if you believe it is reasonable.
31If it isn't accepted there, proposing it for inclusion in ``itertools`` is a good idea.
32The reason for doing is this is so that we avoid future breakage as with ``.flatten()``.
33However, if your feature involves heap allocation, such as storing elements in a ``Vec<T>``,
34then it can't be accepted into ``libcore``, and you should propose it for ``itertools`` directly instead.
35
36## License
37
38Dual-licensed to be compatible with the Rust project.
39
40Licensed under the Apache License, Version 2.0
41https://www.apache.org/licenses/LICENSE-2.0 or the MIT license
42https://opensource.org/licenses/MIT, at your
43option. This file may not be copied, modified, or distributed
44except according to those terms.
45