1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
trait Product { fn product() -> int; } struct Foo { x: int, y: int, } impl Foo { fn sum() -> int { self.x + self.y } } impl Foo : Product { fn product() -> int { self.x * self.y } } fn Foo(x: int, y: int) -> Foo { Foo { x: x, y: y } } fn main() { let foo = Foo(3, 20); io::println(fmt!("%d %d", foo.sum(), foo.product())); }