Selective Closure Capture in Rust
Written
— Updated
- Sometimes in Rust you may have a closure that needs to move some values but not others. If all the values satisfy the
Copy
this is easy, but that it usually not the case. - Sometimes we need to move some values into a closure, but want to borrow others.
- You can solve this problem by creating new bindings for the by-reference values, so that the closure moves the references instead of the original value. It's not pretty but it works well.
let threads = vec!; scope .unwrap;
- This is done by making it a
move
closure, and rebinding the variables that we want to borrow as references.