Opinion: In addition to the "move" keyword for closures, Rust should have a "clone" keyword, that does what I'm doing here manually, so that I don't have to do it
@mcc I half-wonder if the Rust compiler shouldn't be smart enough to work out whether to clone/move. If any of the elements that are needed to make a workable programme are not there, a syntax error would occur, so the compiler should be able to fathom what is needed?
@khleedril @mcc the compiler's fathoming is often deliberately limited (like type inference across fn signatures) because the language designers don't want the compiler making some kinds of inference. IMO you don't want implicit cloning anywhere, although maybe this example this would get away with implicit copying. (Which is fine because it's guanranteed to be a memmove)