1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
pub trait Dot<RHS=Self> { type Output; /// Compute the dot product. fn dot(self, other: RHS) -> Self::Output; } pub trait Proj<RHS=Self> { type Output; /// Project `self` onto `RHS`. fn proj(self, rhs: RHS) -> Self::Output; }