diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-10-19 23:15:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-19 23:15:00 +0200 |
| commit | ce369bfa1120b1293933c8e12a1c18e62a2a153e (patch) | |
| tree | 291c2749494ea71bb5b4f3735d09ab830f950655 | |
| parent | 32820c149b4b92aafc5f8d2e48a4265c5d865a1d (diff) | |
| parent | a8dc2975fd2700e3ed56679ce1bcbd6c2f4c3ab0 (diff) | |
| download | rust-ce369bfa1120b1293933c8e12a1c18e62a2a153e.tar.gz rust-ce369bfa1120b1293933c8e12a1c18e62a2a153e.zip | |
Rollup merge of #37187 - frewsxcv:cow-doc-example, r=kmcallister
Improve doc example for `std::borrow::Cow`. None
| -rw-r--r-- | src/libcollections/borrow.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/libcollections/borrow.rs b/src/libcollections/borrow.rs index 6b45c25eb21..8f9c3578337 100644 --- a/src/libcollections/borrow.rs +++ b/src/libcollections/borrow.rs @@ -86,16 +86,29 @@ impl<T> ToOwned for T where T: Clone { /// ``` /// use std::borrow::Cow; /// -/// # #[allow(dead_code)] /// fn abs_all(input: &mut Cow<[i32]>) { /// for i in 0..input.len() { /// let v = input[i]; /// if v < 0 { -/// // clones into a vector the first time (if not already owned) +/// // Clones into a vector if not already owned. /// input.to_mut()[i] = -v; /// } /// } /// } +/// +/// // No clone occurs because `input` doesn't need to be mutated. +/// let slice = [0, 1, 2]; +/// let mut input = Cow::from(&slice[..]); +/// abs_all(&mut input); +/// +/// // Clone occurs because `input` needs to be mutated. +/// let slice = [-1, 0, 1]; +/// let mut input = Cow::from(&slice[..]); +/// abs_all(&mut input); +/// +/// // No clone occurs because `input` is already owned. +/// let mut input = Cow::from(vec![-1, 0, 1]); +/// abs_all(&mut input); /// ``` #[stable(feature = "rust1", since = "1.0.0")] pub enum Cow<'a, B: ?Sized + 'a> |
