From: Seo Sanghyeon Date: Mon, 18 Jul 2016 13:44:56 +0000 (+0900) Subject: Rollup merge of #34853 - frewsxcv:vec-truncate, r=GuillaumeGomez X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=15715c83770a752914834c16736a19b5a957d507;hp=41fef433a0c64a19d29d5334e547e4f4d6930e7c;p=rust.git Rollup merge of #34853 - frewsxcv:vec-truncate, r=GuillaumeGomez Partial rewrite/expansion of `Vec::truncate` documentation. None --- diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index 7a3c9bc3bb2..2372d5dfc45 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -479,18 +479,45 @@ pub fn into_boxed_slice(mut self) -> Box<[T]> { } } - /// Shorten a vector to be `len` elements long, dropping excess elements. + /// Shortens the vector, keeping the first `len` elements and dropping + /// the rest. /// /// If `len` is greater than the vector's current length, this has no /// effect. /// + /// The [`drain`] method can emulate `truncate`, but causes the excess + /// elements to be returned instead of dropped. + /// /// # Examples /// + /// Truncating a five element vector to two elements: + /// /// ``` /// let mut vec = vec![1, 2, 3, 4, 5]; /// vec.truncate(2); /// assert_eq!(vec, [1, 2]); /// ``` + /// + /// No truncation occurs when `len` is greater than the vector's current + /// length: + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// vec.truncate(8); + /// assert_eq!(vec, [1, 2, 3]); + /// ``` + /// + /// Truncating when `len == 0` is equivalent to calling the [`clear`] + /// method. + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// vec.truncate(0); + /// assert_eq!(vec, []); + /// ``` + /// + /// [`clear`]: #method.clear + /// [`drain`]: #method.drain #[stable(feature = "rust1", since = "1.0.0")] pub fn truncate(&mut self, len: usize) { unsafe {