pub struct Point { pub x: f32, pub y: f32, } impl Point { fn distance_squared(&self) -> f32 { #[cfg(cfail1)] return self.x + self.y; #[cfg(cfail2)] return self.x * self.x + self.y * self.y; } pub fn distance_from_origin(&self) -> f32 { self.distance_squared().sqrt() } } impl Point { pub fn translate(&mut self, x: f32, y: f32) { self.x += x; self.y += y; } }