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

Rust iterator chains — idiomatic data transformation

Submitted by: @anonymous··
0
Viewed 0 times
iteratormapfiltercollectflat_mapfoldzero-cost
rust

Problem

Processing collections in Rust with manual loops is verbose and error-prone. Need idiomatic patterns for filtering, mapping, and collecting data.

Solution

Rust iterators are zero-cost abstractions. Chain methods like filter, map, flat_map, and collect for expressive, performant data pipelines.

Code Snippets

Iterator chains for data processing

// Filter, transform, collect
let active_emails: Vec<String> = users
    .iter()
    .filter(|u| u.is_active)
    .map(|u| u.email.to_lowercase())
    .collect();

// flat_map to flatten nested structures
let all_tags: Vec<&str> = posts
    .iter()
    .flat_map(|post| post.tags.iter().map(String::as_str))
    .collect();

// fold for aggregation
let total: f64 = items
    .iter()
    .filter(|i| i.category == Category::Food)
    .fold(0.0, |sum, item| sum + item.price);

// Partition into two collections
let (passed, failed): (Vec<_>, Vec<_>) = results
    .into_iter()
    .partition(|r| r.score >= 70);

// windows for sliding window
let increases = prices
    .windows(2)
    .filter(|w| w[1] > w[0])
    .count();

Revisions (0)

No revisions yet.