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