# A final proposal for await syntax

**URL:** <https://internals.rust-lang.org/t/a-final-proposal-for-await-syntax/10021>\
**Category:** language design\
**Created:** [May 6, 2019, 2:36pm UTC](https://internals.rust-lang.org/t/a-final-proposal-for-await-syntax/10021 "2019-05-06T14:36:19Z")\
**Posts on this page:** 1\
**Showing post:** 209

<div class="post-metadata">

**Author:** ![Pauan](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/pauan/32/3006_2.png) [@Pauan](https://internals.rust-lang.org/u/Pauan)\
**Post date:** [May 12, 2019, 9:56pm UTC](https://internals.rust-lang.org/t/a-final-proposal-for-await-syntax/10021/209 "2019-05-12T21:56:38Z")

</div>

Here’s an even better example:

[https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c56255bf09cab8bd804d6351dbab7ae4](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c56255bf09cab8bd804d6351dbab7ae4)

```rust
use std::ops::Deref;

struct Foo {
    value: i32,
}

struct Bar {
    foo: Foo,
}

impl Deref for Bar {
    type Target = Foo;
    
    fn deref(&self) -> &Self::Target {
        println!("Firing the nukes!");
        &self.foo
    }
}

fn main() {
    let bar = Bar {
        foo: Foo {
            value: 10,
        },
    };

    // Not a method call, but it still has side effects!
    bar.value;
}

```

---

_[View the full topic](https://internals.rust-lang.org/t/a-final-proposal-for-await-syntax/10021)._
