提交 dc7183ed 编写于 作者: E Erick Tryzelaar

core: rename MutableVector to OwnedVector

上级 d1b7d44b
......@@ -191,7 +191,7 @@ pub use tuple::{CopyableTuple, ImmutableTuple, ExtendedTupleOps};
pub use str::{StrSlice, Trimmable};
pub use vec::{ConstVector, CopyableVector, ImmutableVector};
pub use vec::{ImmutableEqVector, ImmutableCopyableVector};
pub use vec::{MutableVector, MutableCopyableVector};
pub use vec::{OwnedVector, OwnedCopyableVector};
pub use iter::{BaseIter, ExtendedIter, EqIter, CopyableIter};
pub use iter::{CopyableOrderedIter, CopyableNonstrictIter, Times};
......
......@@ -21,7 +21,7 @@
pub use str::{StrSlice, Trimmable};
pub use vec::{ConstVector, CopyableVector, ImmutableVector};
pub use vec::{ImmutableEqVector, ImmutableCopyableVector};
pub use vec::{MutableVector, MutableCopyableVector};
pub use vec::{OwnedVector, OwnedCopyableVector};
pub use iter::{BaseIter, ExtendedIter, EqIter, CopyableIter};
pub use iter::{CopyableOrderedIter, CopyableNonstrictIter, Times};
......
......@@ -1599,13 +1599,6 @@ pub trait ImmutableVector<T> {
pure fn filter_map<U: Copy>(f: fn(t: &T) -> Option<U>) -> ~[U];
}
pub trait ImmutableEqVector<T: Eq> {
pure fn position(f: fn(t: &T) -> bool) -> Option<uint>;
pure fn position_elem(t: &T) -> Option<uint>;
pure fn rposition(f: fn(t: &T) -> bool) -> Option<uint>;
pure fn rposition_elem(t: &T) -> Option<uint>;
}
/// Extension methods for vectors
impl<T> &[T]: ImmutableVector<T> {
/// Return a slice that points into another slice.
......@@ -1671,6 +1664,13 @@ fn map_r<U>(f: fn(x: &T) -> U) -> ~[U] {
}
}
pub trait ImmutableEqVector<T: Eq> {
pure fn position(f: fn(t: &T) -> bool) -> Option<uint>;
pure fn position_elem(t: &T) -> Option<uint>;
pure fn rposition(f: fn(t: &T) -> bool) -> Option<uint>;
pure fn rposition_elem(t: &T) -> Option<uint>;
}
impl<T: Eq> &[T]: ImmutableEqVector<T> {
/**
* Find the first index matching some predicate
......@@ -1740,7 +1740,7 @@ impl<T: Copy> &[T]: ImmutableCopyableVector<T> {
pure fn rfind(f: fn(t: &T) -> bool) -> Option<T> { rfind(self, f) }
}
pub trait MutableVector<T> {
pub trait OwnedVector<T> {
fn push(&mut self, t: T);
fn push_all_move(&mut self, rhs: ~[T]);
fn pop(&mut self) -> T;
......@@ -1753,18 +1753,7 @@ pub trait MutableVector<T> {
fn retain(&mut self, f: pure fn(t: &T) -> bool);
}
pub trait MutableCopyableVector<T: Copy> {
fn push_all(&mut self, rhs: &[const T]);
fn grow(&mut self, n: uint, initval: &T);
fn grow_fn(&mut self, n: uint, op: iter::InitOp<T>);
fn grow_set(&mut self, index: uint, initval: &T, val: T);
}
trait MutableEqVector<T: Eq> {
fn dedup(&mut self);
}
impl<T> ~[T]: MutableVector<T> {
impl<T> ~[T]: OwnedVector<T> {
#[inline]
fn push(&mut self, t: T) {
push(self, t);
......@@ -1817,7 +1806,14 @@ fn retain(&mut self, f: pure fn(t: &T) -> bool) {
}
impl<T: Copy> ~[T]: MutableCopyableVector<T> {
pub trait OwnedCopyableVector<T: Copy> {
fn push_all(&mut self, rhs: &[const T]);
fn grow(&mut self, n: uint, initval: &T);
fn grow_fn(&mut self, n: uint, op: iter::InitOp<T>);
fn grow_set(&mut self, index: uint, initval: &T, val: T);
}
impl<T: Copy> ~[T]: OwnedCopyableVector<T> {
#[inline]
fn push_all(&mut self, rhs: &[const T]) {
push_all(self, rhs);
......@@ -1839,14 +1835,17 @@ fn grow_set(&mut self, index: uint, initval: &T, val: T) {
}
}
impl<T: Eq> ~[T]: MutableEqVector<T> {
trait OwnedEqVector<T: Eq> {
fn dedup(&mut self);
}
impl<T: Eq> ~[T]: OwnedEqVector<T> {
#[inline]
fn dedup(&mut self) {
dedup(self)
}
}
/**
* Constructs a vector from an unsafe pointer to a buffer
*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册