diff --git a/src/quaternion.rs b/src/quaternion.rs index ed201e5..be2f9e5 100644 --- a/src/quaternion.rs +++ b/src/quaternion.rs @@ -47,8 +47,8 @@ pub struct Quat { w: T, x: T, y: T, z: T } pub mod Quat { #[inline(always)] - pub pure fn new(w: T, x: T, y: T, z: T) -> Quat { - Quat { w: w, x: x, y: y, z: z } + pub pure fn new(w: T, x: T, y: T, z: T) -> Quat { + Quat { w: move w, x: move x, y: move y, z: move z } } #[inline(always)] pub pure fn zero () -> Quat { Quat { w: from_int(0), x: from_int(0), y: from_int(0), z: from_int(0) } } diff --git a/src/vector.rs b/src/vector.rs index 0f1057e..2c8cee1 100644 --- a/src/vector.rs +++ b/src/vector.rs @@ -1,8 +1,8 @@ use cast::transmute; -use vec::raw::buf_as_slice; -use ptr::to_unsafe_ptr; use cmp::{Eq, Ord}; use num::from_int; +use vec::raw::buf_as_slice; +use ptr::to_unsafe_ptr; use std::cmp::FuzzyEq; use math::*; @@ -45,8 +45,8 @@ pub struct Vec2 { x: T, y: T } pub mod Vec2 { #[inline(always)] - pub pure fn new(x: T, y: T) -> Vec2 { - Vec2 { x: x, y: y } + pub pure fn new(x: T, y: T) -> Vec2 { + Vec2 { x: move x, y: move y } } #[inline(always)] pub pure fn zero () -> Vec2 { Vec2 { x: from_int(0), y: from_int(0) } } @@ -213,8 +213,8 @@ pub struct Vec3 { x: T, y: T, z: T } pub mod Vec3 { #[inline(always)] - pub pure fn new(x: T, y: T, z: T) -> Vec3 { - Vec3 { x: x, y: y, z: z } + pub pure fn new(x: T, y: T, z: T) -> Vec3 { + Vec3 { x: move x, y: move y, z: move z } } #[inline(always)] pub pure fn zero () -> Vec3 { Vec3 { x: from_int(0), y: from_int(0), z: from_int(0) } } @@ -404,8 +404,8 @@ pub struct Vec4 { x: T, y: T, z: T, w: T } pub mod Vec4 { #[inline(always)] - pub pure fn new(x: T, y: T, z: T, w: T) -> Vec4 { - Vec4 { x: x, y: y, z: z, w: w } + pub pure fn new(x: T, y: T, z: T, w: T) -> Vec4 { + Vec4 { x: move x, y: move y, z: move z, w: move w } } #[inline(always)] pub pure fn zero () -> Vec4 { Vec4 { x: from_int(0), y: from_int(0), z: from_int(0), w: from_int(0) } }