diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2014-11-27 09:04:20 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2014-11-27 09:04:20 -0500 |
| commit | ddb77185d36985aeac85094cb4742da93a7e821d (patch) | |
| tree | 8fd2b5d258c82f6134ad92c47b96d3681cf27de1 /src/libcore | |
| parent | 82fc1aa8756bf47679e09a30c5968da9f84b89e5 (diff) | |
| download | rust-ddb77185d36985aeac85094cb4742da93a7e821d.tar.gz rust-ddb77185d36985aeac85094cb4742da93a7e821d.zip | |
impl Clone for Cow
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/borrow.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcore/borrow.rs b/src/libcore/borrow.rs index 06fda8d6092..0bfa3dac1b0 100644 --- a/src/libcore/borrow.rs +++ b/src/libcore/borrow.rs @@ -137,6 +137,18 @@ pub enum Cow<'a, T, Sized? B: 'a> where B: ToOwned<T> { Owned(T) } +impl<'a, T, Sized? B> Clone for Cow<'a, T, B> where B: ToOwned<T> { + fn clone(&self) -> Cow<'a, T, B> { + match *self { + Borrowed(b) => Borrowed(b), + Owned(ref o) => { + let b: &B = BorrowFrom::borrow_from(o); + Owned(b.to_owned()) + }, + } + } +} + impl<'a, T, Sized? B> Cow<'a, T, B> where B: ToOwned<T> { /// Acquire a mutable reference to the owned form of the data. /// |
