Skip to content

Commit 6d7b143

Browse files
committed
libstd: Add a function to borrow a cell
1 parent 0e3825d commit 6d7b143

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/libstd/cell.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ impl<T> Cell<T> {
3939
fn is_empty() -> bool {
4040
self.value.is_none()
4141
}
42+
43+
// Calls a closure with a reference to the value.
44+
fn with_ref(f: fn(v: &T)) {
45+
let val = move self.take();
46+
f(&val);
47+
self.put_back(move val);
48+
}
4249
}
4350

4451
#[test]
@@ -66,4 +73,4 @@ fn test_take_empty() {
6673
fn test_put_back_non_empty() {
6774
let value_cell = Cell(~10);
6875
value_cell.put_back(~20);
69-
}
76+
}

0 commit comments

Comments
 (0)