diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/deque.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/deque.rs b/src/lib/deque.rs index 699b3f0d..24a03ed0 100644 --- a/src/lib/deque.rs +++ b/src/lib/deque.rs @@ -17,6 +17,8 @@ type t[T] = obj { fn peek_front() -> T; fn peek_back() -> T; + + fn get(int i) -> T; }; fn create[T]() -> t[T] { @@ -128,6 +130,11 @@ fn create[T]() -> t[T] { fn peek_back() -> T { ret get[T](elts, hi); } + + fn get(int i) -> T { + let uint idx = (lo + (i as uint)) % _vec.len[cell[T]](elts); + ret get[T](elts, idx); + } } let vec[cell[T]] v = _vec.init_elt[cell[T]](util.none[T](), |