You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
934 B
50 lines
934 B
struct Nil;
|
|
|
|
struct Pair(i32, f32);
|
|
|
|
#[derive(Debug)]
|
|
struct Point {
|
|
x: f32,
|
|
y: f32,
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
struct Rectangle {
|
|
p1: Point,
|
|
p2: Point,
|
|
}
|
|
|
|
fn rect_area(rect: Rectangle) -> f32 {
|
|
let Rectangle {
|
|
p1: Point { x: x1, y: y1 },
|
|
p2: Point { x: x2, y: y2 }
|
|
} = rect;
|
|
((x1 - x2) * (y1 - y2)).abs()
|
|
}
|
|
|
|
fn main() {
|
|
let point: Point = Point { x: 0.3, y: 0.4 };
|
|
|
|
println!("point coordinates: ({}, {})", point.x, point.y);
|
|
|
|
let Point { x: my_x, y: my_y } = point;
|
|
|
|
let _rectangle = Rectangle {
|
|
p1: Point { x: my_y, y: my_x },
|
|
p2: point,
|
|
};
|
|
|
|
let _nil = Nil;
|
|
|
|
let pair = Pair(1, 0.1);
|
|
|
|
println!("pair contains {:?} and {:?}", pair.0, pair.1);
|
|
|
|
let Pair(integer, decimal) = pair;
|
|
|
|
println!("pair contains {:?} and {:?}", integer, decimal);
|
|
|
|
println!("rect is {:?}", _rectangle);
|
|
println!("rect area is {}", rect_area(_rectangle));
|
|
}
|