If you’re ok with sacrificing a small amount of performance for usability, just throw `clone()` everywhere. It will satisfy the compiler.
Rust can be written as simply as you want it to be written. Or, you can go crazy with generics or metaprogramming.