31 lines
387 B
Rust
31 lines
387 B
Rust
|
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()));
|
||
|
}
|
||
|
|