Why can't I just use &self in the Add trait:
pub trait Add<RHS = Self> {
    type Output;
    fn add(self, rhs: RHS) -> Self::Output;
}
That way I don't have to worry about my struct moving after I use the + operator. It's generally not a problem for me cause I use #[derive(Debug, Copy, Clone)] but still I wonder why.
 
    