filter — keep matching items. take_while — take until condition fails.
filter:
take_while:
1let v = vec![1, 2, 3, 4, 5];23// Filter: keep evens4let evens: Vec<&i32> = v.iter().filter(|&&x| x % 2 == 0).collect();5// [2, 4]67// Take while less than 48let taken: Vec<&i32> = v.iter().take_while(|&&x| x < 4).collect();9// [1, 2, 3]
Key: filter for conditional selection, take_while for prefix.