diff --git a/src/array.rs b/src/array.rs index 8c275e0..adaf00c 100644 --- a/src/array.rs +++ b/src/array.rs @@ -98,5 +98,5 @@ pub trait Array2, Row: Array1, Element: Copy> { } /// Apply a function to each column. - fn map(&mut self, op: |Column| -> Column) -> Self; + fn map(&mut self, op: |&Column| -> Column) -> Self; } diff --git a/src/matrix.rs b/src/matrix.rs index a0963ca..0a0f3d6 100644 --- a/src/matrix.rs +++ b/src/matrix.rs @@ -418,9 +418,9 @@ impl Array2, Vector2, S> for Matrix2 { } #[inline] - fn map(&mut self, op: |Vector2| -> Vector2) -> Matrix2 { - self.x = op(self.x); - self.y = op(self.y); + fn map(&mut self, op: |&Vector2| -> Vector2) -> Matrix2 { + self.x = op(&self.x); + self.y = op(&self.y); *self } } @@ -459,10 +459,10 @@ impl Array2, Vector3, S> for Matrix3 { } #[inline] - fn map(&mut self, op: |Vector3| -> Vector3) -> Matrix3 { - self.x = op(self.x); - self.y = op(self.y); - self.z = op(self.z); + fn map(&mut self, op: |&Vector3| -> Vector3) -> Matrix3 { + self.x = op(&self.x); + self.y = op(&self.y); + self.z = op(&self.z); *self } } @@ -503,11 +503,11 @@ impl Array2, Vector4, S> for Matrix4 { } #[inline] - fn map(&mut self, op: |Vector4| -> Vector4) -> Matrix4 { - self.x = op(self.x); - self.y = op(self.y); - self.z = op(self.z); - self.w = op(self.w); + fn map(&mut self, op: |&Vector4| -> Vector4) -> Matrix4 { + self.x = op(&self.x); + self.y = op(&self.y); + self.z = op(&self.z); + self.w = op(&self.w); *self } }