1 2 3 4 5 6 7 8 9 10
pub fn filter<T: Clone>(iterable: &[T], predicate: fn(&T, usize) -> bool) -> Vec<T> { let mut result: Vec<T> = vec![]; for (index, item) in iterable.iter().enumerate() { if predicate(&item.clone(), index) { result.push(item.clone()); } } result }