about
The biggest Rust-learning mistake is to allow yourself to fall into an implicit belief that it is a high-level language. It is not.
It looks like it, but it isn't. No more than double bass is a giant violin.
You must have resource management at the top of mind - just like in C. The difference is that in C you will always be in a state of anxiety about what is actually happening with your resources, while in Rust you can compile and chill.
Borrow checker is your friend. Framing a friend's honesty about their boundaries, about how to manage their unique contribution to your relationship, how to tap into the potential beauty, as "fighting" - only chips away at the friendship until nothing is left.
Each of your friends is not like another - the potential energy of friendship is in a beautiful concert of coordinated, unique sounds of instruments, each with their own idiosynchronies - double bass is not just a big violin - if you think of it as such - you will not coordinate a beautiful concert.
Often .clone()
is the natural thing to do, but you must not frame it as a concession to the borrow checker anymore than you would frame timing your notes as a concession to the conductor. In any case, you might actually just need .as_ref()
:)
Check your rioting intuition - ask it to have a seat and take a deep breath.
The art of learning is the art of calming the panic during the disturbing early periods of untrained intuition, where every inch of advance requires explicit effort from your System 2.
The higher the level of mastery you've previously achieved, the more disturbing this panic will feel - you've gotten accustomed to a fast flow of good, working ideas from your System 1 and now it is suddenly gone and you're angry that something so effective has been taken away for pedantic reasons. Stupid borrow checker!
Your friends love you.