struct S { x: f64, y: f64 } impl S { fn display(&self) { println!("{} {}", self.x, self.y) } } impl S { fn new(v1: f64, v2: f64) -> S { S{x:v1,y:v2} } } impl S { fn origin() -> S { S{x:0.0,y:0.0} } } fn main() { let p1 = S{x: 1.0, y: 1.0}; let p2 = S{x: 2.5, y: 0.0}; let p3 = S::origin(); let p4 = S::new(3.5,1.1); // println!("{} {}", p1.x, p1.y); // println!("{} {}", p2.x, p2.y) p1.display(); println!("{}", p1.x); p2.display(); p3.display(); p4.display() }