2012-07-24 18:39:26 -05:00
|
|
|
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);
|
2012-07-30 18:01:07 -05:00
|
|
|
io::println(fmt!{"%d %d", foo.sum(), foo.product()});
|
2012-07-24 18:39:26 -05:00
|
|
|
}
|
|
|
|
|