如何为一般的右手操作数重载操作符?

Jos*_*son 7 generics operator-overloading traits rust

我有一个泛型类型,Vec2<T>我想为此实现以下操作:

Vec2<T> = T * Vec2<T>

我试过这个:

impl<T: Copy + Mul<Output = T>> Mul<Vec2<T>> for T {
    type Output = Vec2<T>;

    fn mul(self, rhs: Vec2<T>) -> Vec2<T> {
        Vec2 {
            x: self * rhs.x,
            y: self * rhs.y,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

type参数T必须用作某些本地类型的类型参数(例如MyStruct<T>); 只有当前包中定义的特征可以为类型参数实现

使用您自己的类型作为右侧操作数重载运算符的标准方法是什么?

[编辑]

显然答案是你目前无法做到这一点."重复"中的相关问题有一些答案.我等待语言的更新,以便可以重新打开这个问题,并且可以给出实际的答案.