1/6

Iterator adapters are lazy. map, filter and filter_map build a new iterator and run nothing:

let lazy = raw.iter().map(|s| s.len());   // zero elements processed

Work begins only when something consumes the iterator: collect, sum, count, for, fold, find. Until then you are assembling a pipeline, not running one.