What's wrong with the way regular way Rust returns a value from a block?
let gen: impl Generator<Resume=u32>; for x in gen { ... 123 }