diff options
| author | Felix S. Klock II <pnkfelix@pnkfx.org> | 2014-03-08 21:47:12 +0100 |
|---|---|---|
| committer | Felix S. Klock II <pnkfelix@pnkfx.org> | 2014-03-08 21:47:12 +0100 |
| commit | f978c772ba99955fe8c315963768b603bb8efd41 (patch) | |
| tree | 30b0fc185b522e76100b172c45c4283a6c18475a /src/libstd | |
| parent | 15d9acc46cafba48e0c85b3d02c09d7b91ec98e9 (diff) | |
| download | rust-f978c772ba99955fe8c315963768b603bb8efd41.tar.gz rust-f978c772ba99955fe8c315963768b603bb8efd41.zip | |
Incorporated review feedback atop pcwalton's original patches.
(Original PR was #12716; feedback was provided by thestinger and me.)
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/vec_ng.rs | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/libstd/vec_ng.rs b/src/libstd/vec_ng.rs index f625e638ae8..a195ce8deae 100644 --- a/src/libstd/vec_ng.rs +++ b/src/libstd/vec_ng.rs @@ -14,10 +14,10 @@ use cast::{forget, transmute}; use clone::Clone; use cmp::{Ord, Eq, Ordering, TotalEq, TotalOrd}; -use container::Container; +use container::{Container, Mutable}; use default::Default; use fmt; -use iter::{DoubleEndedIterator, FromIterator, Extendable, Iterator}; +use iter::{DoubleEndedIterator, FromIterator, Extendable, Iterator, Rev}; use libc::{free, c_void}; use mem::{size_of, move_val_init}; use mem; @@ -68,11 +68,7 @@ impl<T> Vec<T> { impl<T: Clone> Vec<T> { pub fn from_slice(values: &[T]) -> Vec<T> { - let mut vector = Vec::new(); - for value in values.iter() { - vector.push((*value).clone()) - } - vector + values.iter().map(|x| x.clone()).collect() } pub fn from_elem(length: uint, value: T) -> Vec<T> { @@ -292,9 +288,8 @@ impl<T> Vec<T> { } #[inline] - pub fn move_rev_iter(mut self) -> MoveItems<T> { - self.reverse(); - self.move_iter() + pub fn move_rev_iter(self) -> Rev<MoveItems<T>> { + self.move_iter().rev() } #[inline] @@ -437,9 +432,12 @@ impl<T> Vec<T> { pub fn as_ptr(&self) -> *T { self.as_slice().as_ptr() } +} +impl<T> Mutable for Vec<T> { + /// Clear the vector, removing all values. #[inline] - pub fn clear(&mut self) { + fn clear(&mut self) { self.truncate(0) } } |
