There's definitely a dialog between Move semantics in C++ and Rust's ownership model.
If I weren't a C++ programmer first, I don't know that I would really grok the value proposition of Rust (not dealing with Move Constructors) or the trade-offs (library code has to provide differently-named functions that trash resources as an optimization, rather than just providing an overload that eats temporaries).
I’m not sure which is correct.