fn indexable(&self) -> uint;
/// Return an element at an index
- fn idx(&self, index: uint) -> Option<A>;
+ fn idx(&mut self, index: uint) -> Option<A>;
}
/// An iterator that knows its exact length
#[inline]
fn indexable(&self) -> uint { self.iter.indexable() }
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
- self.iter.idx(self.indexable() - index - 1)
+ fn idx(&mut self, index: uint) -> Option<A> {
+ let amt = self.indexable();
+ self.iter.idx(amt - index - 1)
}
}
}
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
+ fn idx(&mut self, index: uint) -> Option<A> {
let liter = self.iter.indexable();
let lorig = self.orig.indexable();
if lorig == 0 {
}
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
+ fn idx(&mut self, index: uint) -> Option<A> {
let len = self.a.indexable();
if index < len {
self.a.idx(index)
}
#[inline]
- fn idx(&self, index: uint) -> Option<(A, B)> {
+ fn idx(&mut self, index: uint) -> Option<(A, B)> {
match self.a.idx(index) {
None => None,
Some(x) => match self.b.idx(index) {
}
#[inline]
- fn idx(&self, index: uint) -> Option<B> {
- self.do_map(self.iter.idx(index))
+ fn idx(&mut self, index: uint) -> Option<B> {
+ let elt = self.iter.idx(index);
+ self.do_map(elt)
}
}
}
#[inline]
- fn idx(&self, index: uint) -> Option<(uint, A)> {
+ fn idx(&mut self, index: uint) -> Option<(uint, A)> {
match self.iter.idx(index) {
Some(a) => Some((self.count + index, a)),
_ => None,
}
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
+ fn idx(&mut self, index: uint) -> Option<A> {
if index >= self.indexable() {
None
} else {
}
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
+ fn idx(&mut self, index: uint) -> Option<A> {
if index >= self.n {
None
} else {
}
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
+ fn idx(&mut self, index: uint) -> Option<A> {
self.iter.idx(index)
}
}
}
#[inline]
- fn idx(&self, index: uint) -> Option<A> {
- self.do_inspect(self.iter.idx(index))
+ fn idx(&mut self, index: uint) -> Option<A> {
+ let element = self.iter.idx(index);
+ self.do_inspect(element)
}
}
#[inline]
fn indexable(&self) -> uint { uint::MAX }
#[inline]
- fn idx(&self, _: uint) -> Option<A> { Some(self.element.clone()) }
+ fn idx(&mut self, _: uint) -> Option<A> { Some(self.element.clone()) }
}
/// Functions for lexicographical ordering of sequences.