// run-pass | |
pub trait FakeGenerator { | |
type Yield; | |
type Return; | |
} | |
pub trait FakeFuture { | |
type Output; | |
} | |
pub fn future_from_generator< | |
T: FakeGenerator<Yield = ()> | |
>(x: T) -> impl FakeFuture<Output = T::Return> { | |
GenFuture(x) | |
} | |
struct GenFuture<T: FakeGenerator<Yield = ()>>(T); | |
impl<T: FakeGenerator<Yield = ()>> FakeFuture for GenFuture<T> { | |
type Output = T::Return; | |
} | |
fn main() {} |