From 2a0dac6f58fb07d5fb6a4dfa94e10ddaa44315a7 Mon Sep 17 00:00:00 2001 From: Kevin Ballard Date: Sat, 3 May 2014 23:09:45 -0700 Subject: Handle fallout for vector addition Adding two vectors now results in a Vec instead of a ~[T]. Implement Add on Vec. --- src/libstd/vec.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/libstd/vec.rs') diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index d220ebd0d1e..fe122c7873a 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -22,7 +22,7 @@ use mem::{size_of, move_val_init}; use mem; use num; use num::{CheckedMul, CheckedAdd}; -use ops::Drop; +use ops::{Add, Drop}; use option::{None, Option, Some, Expect}; use ptr::RawPtr; use ptr; @@ -1370,6 +1370,16 @@ impl Vector for Vec { } } +impl> Add> for Vec { + #[inline] + fn add(&self, rhs: &V) -> Vec { + let mut res = Vec::with_capacity(self.len() + rhs.as_slice().len()); + res.push_all(self.as_slice()); + res.push_all(rhs.as_slice()); + res + } +} + #[unsafe_destructor] impl Drop for Vec { fn drop(&mut self) { -- cgit 1.4.1-3-g733a5