//@ run-pass | |
#![allow(non_snake_case)] | |
trait Product { | |
fn product(&self) -> isize; | |
} | |
struct Foo { | |
x: isize, | |
y: isize, | |
} | |
impl Foo { | |
pub fn sum(&self) -> isize { | |
self.x + self.y | |
} | |
} | |
impl Product for Foo { | |
fn product(&self) -> isize { | |
self.x * self.y | |
} | |
} | |
fn Foo(x: isize, y: isize) -> Foo { | |
Foo { x: x, y: y } | |
} | |
pub fn main() { | |
let foo = Foo(3, 20); | |
println!("{} {}", foo.sum(), foo.product()); | |
} |