Rust is a systems language with just as much control and performance as C or C++. And yet, it guarantees memory safety and thread safety at compile-time. How is that possible?