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;
}