The Rectangle refactor is the moment structs go from "nice to have" to "obviously correct." Good framing to anchor the whole piece around that.
One thing worth adding in a follow-up: once you have methods on a struct, the ownership behavior of &self vs &mut self vs consuming self becomes the next natural puzzle. The impl block is where Rust's ownership model starts to feel intentional rather than arbitrary.
The Rectangle refactor is the moment structs go from "nice to have" to "obviously correct." Good framing to anchor the whole piece around that. One thing worth adding in a follow-up: once you have methods on a struct, the ownership behavior of &self vs &mut self vs consuming self becomes the next natural puzzle. The impl block is where Rust's ownership model starts to feel intentional rather than arbitrary.