let a: Result<u8, u8> = /* whatever *; let b = match a { Ok(v) => Ok(foo(v)), e => e, };
let a: Result<u8, u8> = /* whatever *; let b = a.map(foo);
await cannot be a macro, it has to be built into the language, and so it doesn't have the ! because it's not one.