Move position
and rposition
methods to ImmutableVector
trait
This commit is contained in:
parent
3aa1122ec2
commit
4e1fac89bb
1 changed files with 26 additions and 26 deletions
|
@ -2069,6 +2069,8 @@ pub trait ImmutableVector<'self, T> {
|
||||||
fn initn(&self, n: uint) -> &'self [T];
|
fn initn(&self, n: uint) -> &'self [T];
|
||||||
fn last(&self) -> &'self T;
|
fn last(&self) -> &'self T;
|
||||||
fn last_opt(&self) -> Option<&'self T>;
|
fn last_opt(&self) -> Option<&'self T>;
|
||||||
|
fn position(&self, f: &fn(t: &T) -> bool) -> Option<uint>;
|
||||||
|
fn rposition(&self, f: &fn(t: &T) -> bool) -> Option<uint>;
|
||||||
#[cfg(stage0)]
|
#[cfg(stage0)]
|
||||||
fn each_reverse(&self, blk: &fn(&T) -> bool);
|
fn each_reverse(&self, blk: &fn(&T) -> bool);
|
||||||
#[cfg(not(stage0))]
|
#[cfg(not(stage0))]
|
||||||
|
@ -2136,6 +2138,30 @@ impl<'self,T> ImmutableVector<'self, T> for &'self [T] {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn last_opt(&self) -> Option<&'self T> { last_opt(*self) }
|
fn last_opt(&self) -> Option<&'self T> { last_opt(*self) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the first index matching some predicate
|
||||||
|
*
|
||||||
|
* Apply function `f` to each element of `v`. When function `f` returns
|
||||||
|
* true then an option containing the index is returned. If `f` matches no
|
||||||
|
* elements then none is returned.
|
||||||
|
*/
|
||||||
|
#[inline]
|
||||||
|
fn position(&self, f: &fn(t: &T) -> bool) -> Option<uint> {
|
||||||
|
position(*self, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the last index matching some predicate
|
||||||
|
*
|
||||||
|
* Apply function `f` to each element of `v` in reverse order. When
|
||||||
|
* function `f` returns true then an option containing the index is
|
||||||
|
* returned. If `f` matches no elements then none is returned.
|
||||||
|
*/
|
||||||
|
#[inline]
|
||||||
|
fn rposition(&self, f: &fn(t: &T) -> bool) -> Option<uint> {
|
||||||
|
rposition(*self, f)
|
||||||
|
}
|
||||||
|
|
||||||
/// Iterates over a vector's elements in reverse.
|
/// Iterates over a vector's elements in reverse.
|
||||||
#[inline]
|
#[inline]
|
||||||
#[cfg(stage0)]
|
#[cfg(stage0)]
|
||||||
|
@ -2228,43 +2254,17 @@ impl<'self,T> ImmutableVector<'self, T> for &'self [T] {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait ImmutableEqVector<T:Eq> {
|
pub trait ImmutableEqVector<T:Eq> {
|
||||||
fn position(&self, f: &fn(t: &T) -> bool) -> Option<uint>;
|
|
||||||
fn position_elem(&self, t: &T) -> Option<uint>;
|
fn position_elem(&self, t: &T) -> Option<uint>;
|
||||||
fn rposition(&self, f: &fn(t: &T) -> bool) -> Option<uint>;
|
|
||||||
fn rposition_elem(&self, t: &T) -> Option<uint>;
|
fn rposition_elem(&self, t: &T) -> Option<uint>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'self,T:Eq> ImmutableEqVector<T> for &'self [T] {
|
impl<'self,T:Eq> ImmutableEqVector<T> for &'self [T] {
|
||||||
/**
|
|
||||||
* Find the first index matching some predicate
|
|
||||||
*
|
|
||||||
* Apply function `f` to each element of `v`. When function `f` returns
|
|
||||||
* true then an option containing the index is returned. If `f` matches no
|
|
||||||
* elements then none is returned.
|
|
||||||
*/
|
|
||||||
#[inline]
|
|
||||||
fn position(&self, f: &fn(t: &T) -> bool) -> Option<uint> {
|
|
||||||
position(*self, f)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Find the first index containing a matching value
|
/// Find the first index containing a matching value
|
||||||
#[inline]
|
#[inline]
|
||||||
fn position_elem(&self, x: &T) -> Option<uint> {
|
fn position_elem(&self, x: &T) -> Option<uint> {
|
||||||
position_elem(*self, x)
|
position_elem(*self, x)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Find the last index matching some predicate
|
|
||||||
*
|
|
||||||
* Apply function `f` to each element of `v` in reverse order. When
|
|
||||||
* function `f` returns true then an option containing the index is
|
|
||||||
* returned. If `f` matches no elements then none is returned.
|
|
||||||
*/
|
|
||||||
#[inline]
|
|
||||||
fn rposition(&self, f: &fn(t: &T) -> bool) -> Option<uint> {
|
|
||||||
rposition(*self, f)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Find the last index containing a matching value
|
/// Find the last index containing a matching value
|
||||||
#[inline]
|
#[inline]
|
||||||
fn rposition_elem(&self, t: &T) -> Option<uint> {
|
fn rposition_elem(&self, t: &T) -> Option<uint> {
|
||||||
|
|
Loading…
Reference in a new issue