As soon as I started writing implementations for structs in Rust I started fighting with the compiler. Writing what seemed like a simple getter function caused me a lot of frustration. The self parameter can really throw me off in Rust. I reflexively treat it like this in C++, which has no concept of & or &mut. I do this because I think of impl Person as defining methods on a class as I would do in C++. This can be really misleading.