The borrow checker is actually surprisingly simple, although the consequences of having it are complex. Basically you can either borrow immutably, borrow mutably, or own data. An immutable borrow can be shared in many contexts at a time, a mutable borrow can only be shared with one context at a time, and ownership means you're giving up that data to another context.
I've been working on a raytracer/pathtracer. Although I'm not very good at the trig yet. I also wrote a Piet language interpreter.
Interesting that you're working on a raytracer. That is the project I plan to do when I decide to learn Rust.
I started implementing one many years ago in C but never completed it. Then, I did one in Python to relearn the concepts but it's obviously slow as hell. Rust would be ideal.
All the best with your raytracer.
Thanks! You too.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.