mirror of https://github.com/rust-lang/rust
38 lines
713 B
Rust
38 lines
713 B
Rust
struct Texture;
|
|
|
|
trait Surface {
|
|
type TextureIter<'a>: Iterator<Item = &'a Texture>
|
|
where
|
|
Self: 'a;
|
|
|
|
fn get_texture(&self) -> Self::TextureIter<'_>;
|
|
}
|
|
|
|
trait Swapchain {
|
|
type Surface<'a>: Surface
|
|
where
|
|
Self: 'a;
|
|
|
|
fn get_surface(&self) -> Self::Surface<'_>;
|
|
}
|
|
|
|
impl<'s> Surface for &'s Texture {
|
|
type TextureIter<'a> = std::option::IntoIter<&'a Texture>;
|
|
//~^ ERROR the type
|
|
|
|
fn get_texture(&self) -> Self::TextureIter<'_> {
|
|
let option: Option<&Texture> = Some(self);
|
|
option.into_iter()
|
|
}
|
|
}
|
|
|
|
impl Swapchain for Texture {
|
|
type Surface<'a> = &'a Texture;
|
|
|
|
fn get_surface(&self) -> Self::Surface<'_> {
|
|
self
|
|
}
|
|
}
|
|
|
|
fn main() {}
|