Skip to content

Commit 592272b

Browse files
committed
Merge pull request #23 from arthurprs/master
get_refresh result should be mutable
2 parents fe2ab44 + 16be442 commit 592272b

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/lib.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -248,16 +248,16 @@ impl<K: Hash + Eq, V, S: HashState> LinkedHashMap<K, V, S> {
248248
/// map.insert(2, "b");
249249
/// map.insert(3, "d");
250250
///
251-
/// assert_eq!(map.get_refresh(&2), Some(&"b"));
251+
/// assert_eq!(map.get_refresh(&2), Some(&mut "b"));
252252
///
253253
/// assert_eq!((&2, &"b"), map.iter().rev().next().unwrap());
254254
/// ```
255-
pub fn get_refresh<Q: ?Sized>(&mut self, k: &Q) -> Option<&V> where K: Borrow<Q>, Q: Eq + Hash {
255+
pub fn get_refresh<Q: ?Sized>(&mut self, k: &Q) -> Option<&mut V> where K: Borrow<Q>, Q: Eq + Hash {
256256
let (value, node_ptr_opt) = match self.map.get_mut(Qey::from_ref(k)) {
257257
None => (None, None),
258258
Some(node) => {
259259
let node_ptr: *mut LinkedHashMapEntry<K, V> = &mut **node;
260-
(Some(unsafe { &(*node_ptr).value }), Some(node_ptr))
260+
(Some(unsafe { &mut(*node_ptr).value }), Some(node_ptr))
261261
}
262262
};
263263
match node_ptr_opt {
@@ -842,7 +842,7 @@ mod tests {
842842
assert_eq!(format!("{:?}", map), "{1: 10, 3: 30, 2: 22}");
843843
map.get(&3);
844844
assert_eq!(format!("{:?}", map), "{1: 10, 3: 30, 2: 22}");
845-
map.get_refresh(&3);
845+
map.get_refresh(&mut 3);
846846
assert_eq!(format!("{:?}", map), "{1: 10, 2: 22, 3: 30}");
847847
map.clear();
848848
assert_eq!(format!("{:?}", map), "{}");
@@ -994,10 +994,10 @@ mod tests {
994994
assert_eq!(map.get(&Foo(Bar(1))), Some(&"a"));
995995
assert_eq!(map.get(&Foo(Bar(2))), Some(&"b"));
996996

997-
assert_eq!(map.get_refresh(&Bar(1)), Some(&"a"));
998-
assert_eq!(map.get_refresh(&Bar(2)), Some(&"b"));
999-
assert_eq!(map.get_refresh(&Foo(Bar(1))), Some(&"a"));
1000-
assert_eq!(map.get_refresh(&Foo(Bar(2))), Some(&"b"));
997+
assert_eq!(map.get_refresh(&Bar(1)), Some(&mut "a"));
998+
assert_eq!(map.get_refresh(&Bar(2)), Some(&mut "b"));
999+
assert_eq!(map.get_refresh(&Foo(Bar(1))), Some(&mut "a"));
1000+
assert_eq!(map.get_refresh(&Foo(Bar(2))), Some(&mut "b"));
10011001

10021002
assert_eq!(map.get_mut(&Bar(1)), Some(&mut "a"));
10031003
assert_eq!(map.get_mut(&Bar(2)), Some(&mut "b"));

0 commit comments

Comments
 (0)