Struct valord_map::RefMut
source · pub struct RefMut<'v, T, K, V>{ /* private fields */ }Implementations§
source§impl<'v, T, K, V> RefMut<'v, T, K, V>
impl<'v, T, K, V> RefMut<'v, T, K, V>
sourcepub fn get_mut_with_key(&mut self) -> (&K, &mut V)
pub fn get_mut_with_key(&mut self) -> (&K, &mut V)
Examples found in repository?
examples/people_ord_by_age.rs (line 118)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
fn main() {
let mut peoples = ValordMap::new();
peoples.insert(
1,
People {
age: 18,
name: "qians1".to_string(),
},
);
peoples.insert(
2,
People {
age: 19,
name: "qians2".to_string(),
},
);
peoples.insert(
3,
People {
age: 20,
name: "qians3".to_string(),
},
);
peoples.insert(
4,
People {
age: 21,
name: "qians4".to_string(),
},
);
peoples.insert(
5,
People {
age: 22,
name: "qians5".to_string(),
},
);
let youngest = peoples.first();
assert_eq!(youngest.len(), 1);
assert_eq!(
youngest[0],
(
&1,
&People {
age: 18,
name: "qians1".to_string(),
}
)
);
let oldest = peoples.last();
assert_eq!(oldest.len(), 1);
assert_eq!(
oldest[0],
(
&5,
&People {
age: 22,
name: "qians5".to_string(),
}
)
);
peoples
.iter_mut()
.for_each(|mut people_ref_mut| people_ref_mut.age += 1);
let youngest = peoples.first();
assert_eq!(youngest.len(), 1);
assert_eq!(
youngest[0],
(
&1,
&People {
age: 19,
name: "qians1".to_string(),
}
)
);
let oldest = peoples.last();
assert_eq!(oldest.len(), 1);
assert_eq!(
oldest[0],
(
&5,
&People {
age: 23,
name: "qians5".to_string(),
}
)
);
let range: Vec<_> = peoples.range(22..).collect();
assert_eq!(range.len(), 2);
println!("range: {range:?}");
let range: Vec<_> = peoples
.range_mut(22..)
.map(|mut rm_p| {
let (k, v) = rm_p.get_mut_with_key();
v.age = 30;
(*k, v.name.clone(), v.age)
})
.collect();
println!("range mut: {range:?}");
let oldest = peoples.last();
assert_eq!(oldest.len(), 2);
assert_eq!(oldest[0].1.age, 30,);
assert_eq!(oldest[1].1.age, 30);
println!("peoples: {:?}", peoples.iter().collect::<Vec<_>>());
}Trait Implementations§
Auto Trait Implementations§
impl<'v, T, K, V> Freeze for RefMut<'v, T, K, V>
impl<'v, T, K, V> RefUnwindSafe for RefMut<'v, T, K, V>
impl<'v, T, K, V> Send for RefMut<'v, T, K, V>
impl<'v, T, K, V> Sync for RefMut<'v, T, K, V>
impl<'v, T, K, V> Unpin for RefMut<'v, T, K, V>
impl<'v, T, K, V> !UnwindSafe for RefMut<'v, T, K, V>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more