Rust is a systems programming language designed to avoid many of C’s safety pitfalls while remaining competitive on speed. Its compiler does much of the work of enforcing safe code, provided you avoid unsafe blocks. Writing good Rust still requires deliberate choices about memory, lifetimes, passing values, and API ergonomics. section 10.1 section 1.3
Choosing mutability
Consider a Vec that needs updating. Rust lets you opt in to mutability rather than duplicate the data to preserve immutability. That choice can save memory and CPU time, but it does not make mutation—or immutability—the right pattern everywhere. section 9.2
Treat design patterns as adaptable tools, not templates to copy. Rust’s traits, ownership, and standard-library iterators can change how an older object-oriented pattern fits. Likewise, an antipattern is a reason to examine context, not a rule without exceptions. section 1.1 section 10.0





