3 pub trait Add
<RHS
,Result
> {
4 fn add(&self, rhs
: &RHS
) -> Result
;
7 trait MyNum
: Sized
+ Add
<Self,Self> { }
9 struct MyInt { val: isize }
11 impl Add
<MyInt
, MyInt
> for MyInt
{
12 fn add(&self, other
: &MyInt
) -> MyInt { mi(self.val + other.val) }
15 impl MyNum
for MyInt {}
17 fn f
<T
:MyNum
>(x
: T
, y
: T
) -> T
{
21 fn mi(v
: isize) -> MyInt { MyInt { val: v }
}
24 let (x
, y
) = (mi(3), mi(5));