9.6 The self Parameter
When defining methods, you decide how self is taken:
self: Full ownership; the instance is moved.&self: Immutable reference; data is not modified.&mut self: Mutable reference; data can be modified.
Use self if you need to consume the instance, &mut self if you need to mutate it, and &self otherwise. This explicitness helps ensure safe concurrency and memory management.