about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2013-02-16 20:50:14 -0500
committerDaniel Micay <danielmicay@gmail.com>2013-02-16 20:51:04 -0500
commita2573290710f4b3f14be475f4ef2af773de7b4c7 (patch)
tree6b3b72d6bf9961578b5ba0cf19d67e139a17ebb3 /src/libstd
parent6190661018b7a62613b7f02d2bc1c1d31cd2470d (diff)
downloadrust-a2573290710f4b3f14be475f4ef2af773de7b4c7.tar.gz
rust-a2573290710f4b3f14be475f4ef2af773de7b4c7.zip
deque: avoid Copy for get
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/deque.rs34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/libstd/deque.rs b/src/libstd/deque.rs
index 7f8732d187f..1857d5eeaf9 100644
--- a/src/libstd/deque.rs
+++ b/src/libstd/deque.rs
@@ -46,6 +46,11 @@ impl<T> Deque<T> {
     fn peek_front(&self) -> &self/T { get(self.elts, self.lo) }
     fn peek_back(&self) -> &self/T { get(self.elts, self.hi - 1u) }
 
+    fn get(&self, i: int) -> &self/T {
+        let idx = (self.lo + (i as uint)) % self.elts.len();
+        get(self.elts, idx)
+    }
+
     fn pop_front(&mut self) -> T {
         let mut result = self.elts[self.lo].swap_unwrap();
         self.lo = (self.lo + 1u) % self.elts.len();
@@ -89,11 +94,6 @@ impl<T: Copy> Deque<T> {
         self.hi = (self.hi + 1u) % self.elts.len();
         self.nelts += 1u;
     }
-
-    fn get(&self, i: int) -> T {
-        let idx = (self.lo + (i as uint)) % self.elts.len();
-        *get(self.elts, idx)
-    }
 }
 
 /// Grow is only called on full elts, so nelts is also len(elts), unlike
@@ -161,10 +161,10 @@ mod tests {
         log(debug, d.get(1));
         log(debug, d.get(2));
         log(debug, d.get(3));
-        assert d.get(0) == 1;
-        assert d.get(1) == 2;
-        assert d.get(2) == 3;
-        assert d.get(3) == 4;
+        assert *d.get(0) == 1;
+        assert *d.get(1) == 2;
+        assert *d.get(2) == 3;
+        assert *d.get(3) == 4;
     }
 
     #[test]
@@ -197,10 +197,10 @@ mod tests {
         assert deq.len() == 3;
         deq.add_front(a);
         assert deq.len() == 4;
-        assert deq.get(0) == a;
-        assert deq.get(1) == b;
-        assert deq.get(2) == c;
-        assert deq.get(3) == d;
+        assert *deq.get(0) == a;
+        assert *deq.get(1) == b;
+        assert *deq.get(2) == c;
+        assert *deq.get(3) == d;
     }
 
     fn test_parameterized<T: Copy Eq Durable>(a: T, b: T, c: T, d: T) {
@@ -227,10 +227,10 @@ mod tests {
         assert deq.len() == 3;
         deq.add_front(a);
         assert deq.len() == 4;
-        assert deq.get(0) == a;
-        assert deq.get(1) == b;
-        assert deq.get(2) == c;
-        assert deq.get(3) == d;
+        assert *deq.get(0) == a;
+        assert *deq.get(1) == b;
+        assert *deq.get(2) == c;
+        assert *deq.get(3) == d;
     }
 
     #[deriving_eq]