I’m new to Rust, and I come from C/C++. If I understand borrowing correctly, a reference implies a temporary transfer of ownership within a scope, while moving implies a permanent transfer of ownership.
Vec::new() -> Vec<T> makes sense. I created a Vec, I own it now.
Path::new() -> &Path ? Wouldn’t I want to own the value once I’ve created it instead of getting a reference?