]>
Commit | Line | Data |
---|---|---|
b7449926 XL |
1 | // run-pass |
2 | ||
94b46f34 XL |
3 | pub trait FakeGenerator { |
4 | type Yield; | |
5 | type Return; | |
b039eaaf | 6 | } |
85aaf69f | 7 | |
94b46f34 XL |
8 | pub trait FakeFuture { |
9 | type Output; | |
b039eaaf | 10 | } |
223e47cc | 11 | |
94b46f34 XL |
12 | pub fn future_from_generator< |
13 | T: FakeGenerator<Yield = ()> | |
14 | >(x: T) -> impl FakeFuture<Output = T::Return> { | |
15 | GenFuture(x) | |
83c7162d XL |
16 | } |
17 | ||
064997fb | 18 | struct GenFuture<T: FakeGenerator<Yield = ()>>(#[allow(unused_tuple_struct_fields)] T); |
94b46f34 XL |
19 | |
20 | impl<T: FakeGenerator<Yield = ()>> FakeFuture for GenFuture<T> { | |
21 | type Output = T::Return; | |
c34b1796 | 22 | } |
7cac9316 XL |
23 | |
24 | fn main() {} |