#iterator #predicate #index #find #identical #option-vec-usize

find_all

A (nearly) identical alternative for Iterator::find which returns an Option<Vec<usize>> containing all elements which meet a given predicate (instead of just the first)

4 stable releases

2.0.0 Jun 29, 2022
1.0.2 Jun 27, 2022

#1763 in Rust patterns

Download history 7/week @ 2024-11-27 15/week @ 2024-12-04 45/week @ 2024-12-11 11/week @ 2024-12-18 19/week @ 2025-01-01 10/week @ 2025-01-08 41/week @ 2025-01-15 18/week @ 2025-01-22 23/week @ 2025-01-29 29/week @ 2025-02-05 39/week @ 2025-02-12 20/week @ 2025-02-19 39/week @ 2025-02-26 18/week @ 2025-03-05 40/week @ 2025-03-12

122 downloads per month

GPL-3.0-only

5KB

find_all

find_all is capable of finding all indexes of elements where a given predicate is met and therefore aims to be a simple alternative with (nearly) identical interface to the find method (this difference being returning an Option<Vec<usize>> instead of Option<usize>)

use find_all::FindAll;
let test_data = [1, 2, 3, 4, 1, 1, 1, 1];
let indexes = test_data.iter().find_all(|num: &&i32| **num == 9);
assert_eq!(indexes, None);

let indexes = test_data.iter().find_all(|num: &&i32| **num == 1);
assert_eq!(indexes, Some(vec![0,4,5,6,7]));

License: GPL-3.0-only


lib.rs:

find_all is capable of finding all indexes of elements where a given predicate is met and therefore aims to be a simple alternative with (nearly) identical interface to the find method (this difference being returning an Option<Vec<usize>> instead of Option<usize>)

use find_all::FindAll;
let test_data = [1, 2, 3, 4, 1, 1, 1, 1];
let indexes = test_data.iter().find_all(|num: &&i32| **num == 9);
assert_eq!(indexes, None);

let indexes = test_data.iter().find_all(|num: &&i32| **num == 1);
assert_eq!(indexes, Some(vec![0,4,5,6,7]));

No runtime deps