From 908aefc86cebc36c29f0d43c1a994b6fa14c74c2 Mon Sep 17 00:00:00 2001 From: gbrochar Date: Fri, 4 Dec 2020 19:07:06 +0100 Subject: [PATCH] rectangles --- rectangles/src/main.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rectangles/src/main.rs b/rectangles/src/main.rs index 55fd2e6..0e74b24 100644 --- a/rectangles/src/main.rs +++ b/rectangles/src/main.rs @@ -12,6 +12,17 @@ impl Rectangle { fn add_height(&mut self) { self.height += 1; } + + fn can_hold(&self, other: &Rectangle) -> bool { + self.width >= other.width && self.height >= other.height + } + + fn square(size: u32) -> Rectangle { + Rectangle { + width: size, + height: size, + } + } } fn main() { @@ -19,11 +30,26 @@ fn main() { width: 30, height: 50, }; + let rect2 = Rectangle { + width: 10, + height: 40, + }; + let rect3 = Rectangle { + width: 60, + height: 45, + }; + let square1 = Rectangle::square(20); println!( "The area of the rectangle is {} square pixels.", rect1.area() ); + println!( + "The area of the square is {} square pixels.", + square1.area() + ); rect1.add_height(); println!("{:#?}", rect1); + println!("Can rect1 hold rect2? {}", rect1.can_hold(&rect2)); + println!("Can rect1 hold rect3? {}", rect1.can_hold(&rect3)); } \ No newline at end of file