# \`move\` operator for ergonomic captures

**URL:** https://internals.rust-lang.org/t/move-operator-for-ergonomic-captures/21088
**Category:** language design
**Created:** [June 27, 2024, 12:10am UTC](https://internals.rust-lang.org/t/move-operator-for-ergonomic-captures/21088 "2024-06-27T00:10:57Z")
**Posts on this page:** 1
**Showing post:** 12

<div class="post-metadata">

### Author: ![kornel](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/kornel/32/2711_2.png) [@kornel](https://internals.rust-lang.org/u/kornel)
#### Post date: [June 27, 2024, 12:26pm UTC](https://internals.rust-lang.org/t/move-operator-for-ergonomic-captures/21088/12 "2024-06-27T12:26:50Z")

</div>

I think this functionality is needed, but I'd go for lists of variables with modifiers on the async block instead

```rust
let foo = Arc;
let bar = X;
async move(clone foo, ref bar, ..) {
  // foo is Arc, and bar is &X here 
  // ".." allowed any other variables with default behavior 
}

```

---

_[View the full topic](https://internals.rust-lang.org/t/move-operator-for-ergonomic-captures/21088)._
