diff options
| author | Wesley Wiser <wwiser@gmail.com> | 2017-01-24 22:44:33 -0500 |
|---|---|---|
| committer | Wesley Wiser <wwiser@gmail.com> | 2017-01-24 22:48:38 -0500 |
| commit | c6cfa3c4899e46addfe6d04d6aaa2d247056748f (patch) | |
| tree | 2e27e883994bd4d8971196ac92939116aaab768a /src/libcoretest | |
| parent | 83c2d95238e3545e7ae9af4873c48b1e3651c164 (diff) | |
| download | rust-c6cfa3c4899e46addfe6d04d6aaa2d247056748f.tar.gz rust-c6cfa3c4899e46addfe6d04d6aaa2d247056748f.zip | |
Extend Cell to work with non-Copy types
Part of #39264
Diffstat (limited to 'src/libcoretest')
| -rw-r--r-- | src/libcoretest/cell.rs | 31 | ||||
| -rw-r--r-- | src/libcoretest/lib.rs | 1 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/libcoretest/cell.rs b/src/libcoretest/cell.rs index 724a312ea79..8585f2f0871 100644 --- a/src/libcoretest/cell.rs +++ b/src/libcoretest/cell.rs @@ -210,6 +210,37 @@ fn cell_default() { } #[test] +fn cell_set() { + let cell = Cell::new(10); + cell.set(20); + assert_eq!(20, cell.get()); + + let cell = Cell::new("Hello".to_owned()); + cell.set("World".to_owned()); + assert_eq!("World".to_owned(), cell.into_inner()); +} + +#[test] +fn cell_replace() { + let cell = Cell::new(10); + assert_eq!(10, cell.replace(20)); + assert_eq!(20, cell.get()); + + let cell = Cell::new("Hello".to_owned()); + assert_eq!("Hello".to_owned(), cell.replace("World".to_owned())); + assert_eq!("World".to_owned(), cell.into_inner()); +} + +#[test] +fn cell_into_inner() { + let cell = Cell::new(10); + assert_eq!(10, cell.into_inner()); + + let cell = Cell::new("Hello world".to_owned()); + assert_eq!("Hello world".to_owned(), cell.into_inner()); +} + +#[test] fn refcell_default() { let cell: RefCell<u64> = Default::default(); assert_eq!(0, *cell.borrow()); diff --git a/src/libcoretest/lib.rs b/src/libcoretest/lib.rs index ee47b510ee0..ea88d45630c 100644 --- a/src/libcoretest/lib.rs +++ b/src/libcoretest/lib.rs @@ -34,6 +34,7 @@ #![feature(ordering_chaining)] #![feature(result_unwrap_or_default)] #![feature(ptr_unaligned)] +#![feature(move_cell)] extern crate core; extern crate test; |
