1use indexed_vector::{BTreeIndexedVector, HashIndexedVector, IndexedVector};
2
3#[allow(dead_code)]
4#[derive(Clone, Debug)]
5struct User {
6 name: String,
7 age: u16,
8}
9
10fn main() {
11 let users = vec![
12 User {
13 name: "Tom".to_owned(),
14 age: 20,
15 },
16 User {
17 name: "Jane".to_owned(),
18 age: 20,
19 },
20 User {
21 name: "Ivan".to_owned(),
22 age: 30,
23 },
24 ];
25
26 let hash_vec = HashIndexedVector::new(users.clone(), |user: &User| user.age);
27 dbg!(hash_vec.search(&20).collect::<Vec<_>>());
29 dbg!(hash_vec.search(&30).collect::<Vec<_>>());
31
32 let btree_vec = BTreeIndexedVector::new(users, |user: &User| user.age);
33 dbg!(btree_vec.search_range(10..40).collect::<Vec<_>>());
35}