diff --git a/structs/src/main.rs b/structs/src/main.rs index e4f45e8..06b41be 100644 --- a/structs/src/main.rs +++ b/structs/src/main.rs @@ -8,6 +8,10 @@ impl Rectangle { fn area(&self) -> u32 { self.width * self.height } + + fn can_hold(&self, other: &Rectangle) -> bool { + self.width > other.width && self.height > other.height + } } fn main() { @@ -15,9 +19,20 @@ fn main() { width: 30, height: 50, }; + let rect2 = Rectangle { + width: 10, + height: 40, + }; + let rect3 = Rectangle { + width: 60, + height: 45, + }; println!( "The area of the rectangle is {} square pixels.", rect1.area() ); + + println!("Can rect1 hold rect2? {}", rect1.can_hold(&rect2)); + println!("Can rect1 hold rect3? {}", rect1.can_hold(&rect3)); }