Code Monkey home page Code Monkey logo

rust-itertools's Introduction

Itertools

Extra iterator adaptors, functions and macros. Requires Rust 1.2+.

Please read the API documentation here

build_status_ crates_

How to use with cargo:

[dependencies]
itertools = "0.4"

How to use in your crate:

#[macro_use] extern crate itertools;

use itertools::Itertools;

Recent Changes

  • 0.4.11
    • Add .get() for Stride{,Mut} and .get_mut() for StrideMut
  • 0.4.10
    • Improve performance of .kmerge()
  • 0.4.9
    • Add k-ary merge adaptor .kmerge()
    • Fix a bug in .islice() with ranges a..b where a > b.
  • 0.4.8
    • Implement Clone, Debug for Linspace
  • 0.4.7
    • Add function diff_with() that compares two iterators
    • Add .combinations_n(), an n-ary combinations iterator
    • Add methods PutBack::with_value and PutBack::into_parts.
  • 0.4.6
    • Add method .sorted()
    • Add module itertools::free with free function variants of common iterator adaptors and methods. For example enumerate(iterable), rev(iterable), and so on.
  • 0.4.5
    • Add .flatten()
  • 0.4.4
    • Allow composing ZipSlices with itself
  • 0.4.3
    • Write iproduct!() as a single expression; this allows temporary values in its arguments.
  • 0.4.2
    • Add .fold_options()
    • Require Rust 1.1 or later
  • 0.4.1
    • Update .dropping() to take advantage of .nth()
  • 0.4.0
    • .merge(), .unique() and .dedup() now perform better due to not using function pointers
    • Add free functions enumerate() and rev()
    • Breaking changes:
      • Return types of .merge() and .merge_by() renamed and changed
      • Method Merge::new removed
      • .merge_by() now takes a closure that returns bool.
      • Return type of .dedup() changed
      • Return type of .mend_slices() changed
      • Return type of .unique() changed
      • Removed function times(), struct Times: use a range instead
      • Removed deprecated macro icompr!()
      • Removed deprecated FnMap and method .fn_map(): use .map_fn()
      • .interleave_shortest() is no longer guaranteed to act like fused
  • 0.3.25
    • Rename .sort_by() to .sorted_by(). Old name is deprecated.
    • Fix well-formedness warnings from RFC 1214, no user visible impact
  • 0.3.24
    • Improve performance of .merge()'s ordering function slightly
  • 0.3.23
    • Added .chunks_lazy(), similar to (and based on) .group_by_lazy().
    • Tweak linspace to match numpy.linspace and make it double ended.
  • 0.3.22
    • Added ZipSlices, a fast zip for slices
  • 0.3.21
    • Remove Debug impl for Format, it will have different use later
  • 0.3.20
    • Optimize .group_by_lazy()
  • 0.3.19
    • Added .group_by_lazy(), a possibly nonallocating group by
    • Added .format(), a nonallocating formatting helper for iterators
    • Remove uses of RandomAccessIterator since it has been deprecated in rust.
  • 0.3.17
    • Added (adopted) Unfold from rust
  • 0.3.16
    • Added adaptors .unique(), .unique_by()
  • 0.3.15
    • Added method .sort_by()
  • 0.3.14
    • Added adaptor .while_some()
  • 0.3.13
    • Added adaptor .interleave_shortest()
    • Added adaptor .pad_using()
  • 0.3.11
    • Added assert_equal function
  • 0.3.10
    • Bugfix .combinations() size_hint.
  • 0.3.8
    • Added source RepeatCall
  • 0.3.7
    • Added adaptor PutBackN
    • Added adaptor .combinations()
  • 0.3.6
    • Added itertools::partition, partition a sequence in place based on a predicate.
    • Deprecate icompr!() with no replacement.
  • 0.3.5
    • .map_fn() replaces deprecated .fn_map().
  • 0.3.4
    • .take_while_ref() by-ref adaptor
    • .coalesce() adaptor
    • .mend_slices() adaptor
  • 0.3.3
    • .dropping_back() method
    • .fold1() method
    • .is_empty_hint() method

License

Dual-licensed to be compatible with the Rust project.

Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 or the MIT license http://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.

rust-itertools's People

Contributors

bluss avatar mitchmindtree avatar bsteinb avatar flo-l avatar milibopp avatar stebalien avatar ema-fox avatar zsiciarz avatar panicbit avatar erickt avatar danielkeep avatar zummenix avatar imp avatar hjr3 avatar marcusklaas avatar salty-horse avatar stepancheg avatar

Watchers

Jared Burce avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.