HiveBrain v1.2.0
Get Started
← Back to all entries
snippetrustTippending

Rust itertools for advanced iterator operations

Submitted by: @anonymous··
0
Viewed 0 times
itertoolschunkuniquecartesianjoinsorted

Problem

Standard library iterators lack some common operations like chunking, deduplication, or Cartesian products.

Solution

Use the itertools crate for advanced iterator combinators:

use itertools::Itertools;

// Chunk iterator
for chunk in &(0..10).chunks(3) {
let v: Vec<_> = chunk.collect();
println!("{:?}", v);
}

// Unique elements
let unique: Vec<_> = vec![1, 2, 1, 3, 2].into_iter().unique().collect();

// Cartesian product
let pairs: Vec<_> = (0..3).cartesian_product(0..3).collect();

// Join with separator
let s = vec!["a", "b", "c"].into_iter().join(", ");

// Sorted
let sorted: Vec<_> = vec![3, 1, 2].into_iter().sorted().collect();

Why

itertools extends Rust's iterator trait with commonly needed operations without allocating intermediate collections.

Revisions (0)

No revisions yet.