diff --git a/src/structs/mat.rs b/src/structs/mat.rs index 40604e9b..70321bb2 100644 --- a/src/structs/mat.rs +++ b/src/structs/mat.rs @@ -19,6 +19,7 @@ use traits::geometry::{ToHomogeneous, FromHomogeneous, Orig}; use linalg; #[cfg(feature="arbitrary")] use quickcheck::{Arbitrary, Gen}; +use std::fmt::Debug; /// Special identity matrix. All its operation are no-ops. diff --git a/src/structs/mat_macros.rs b/src/structs/mat_macros.rs index d95ffd2d..7b1d3263 100644 --- a/src/structs/mat_macros.rs +++ b/src/structs/mat_macros.rs @@ -702,7 +702,7 @@ macro_rules! from_homogeneous_impl( macro_rules! outer_impl( ($t: ident, $m: ident) => ( - impl + Zero> Outer for $t { + impl + Zero> Outer for $t { type OuterProductType = $m; #[inline] diff --git a/src/traits/operations.rs b/src/traits/operations.rs index 80c899ce..8b737efe 100644 --- a/src/traits/operations.rs +++ b/src/traits/operations.rs @@ -4,6 +4,7 @@ use num::{Float, Signed}; use std::ops::Mul; use std::cmp::Ordering; use traits::structure::SquareMat; +use std::fmt::Debug; /// Result of a partial ordering. #[derive(Eq, PartialEq, RustcEncodable, RustcDecodable, Clone, Debug, Copy)] @@ -300,9 +301,9 @@ pub trait Transpose { } /// Traits of objects having an outer product. -pub trait Outer { +pub trait Outer : Debug { /// Result type of the outer product. - type OuterProductType; + type OuterProductType : Debug; /// Computes the outer product: `a * b` fn outer(&self, other: &Self) -> Self::OuterProductType;