use MyType::clone; would be sufficiently "at the call site".In my experience, it's seen as unidiomatic to put
use anywhere but at the top of the module, so that would encourage altering the semantics of cloning MyType what could be 600+ lines away from where the magic happens.The reason I support ideas involving amending the closure syntax is that all the motivating example code I've seen has been to remove an extra
let foo = foo.clone(); per variable before creating a closure, and amending the closure capture syntax would ensure the opting-in happens at the place where the cloning happens.https://lobste.rs/c/wfna8o
