2012-07-24 18:39:26 -05:00
|
|
|
trait Product {
|
|
|
|
fn product() -> int;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Foo {
|
2012-09-07 16:50:47 -05:00
|
|
|
x: int,
|
|
|
|
y: int,
|
2012-07-24 18:39:26 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
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-08-22 19:24:52 -05:00
|
|
|
io::println(fmt!("%d %d", foo.sum(), foo.product()));
|
2012-07-24 18:39:26 -05:00
|
|
|
}
|
|
|
|
|