我目前想要使用GamerIterator 为活塞游戏定义一个结构:
pub struct MyGame<'a> {
game_window: GameWindowGLFW,
game_iter: GameIterator<'a, GameWindowGLFW>,
//...
}
Run Code Online (Sandbox Code Playgroud)
该GameIterator是在通用GameWindow和它的使用寿命.我想告诉编译器它与字段"game_window"/"整个结构"具有相同的生命周期,并省略了结构的生命周期.
我也很难初始化这个:
MyGame {
game_window: GameWindowGLFW::new(GameWindowSettings {/*...*/},
game_iter: GameIterator::new(&mut game_window, &game_iter_settings), // game_window cannot be used here
//...
}
Run Code Online (Sandbox Code Playgroud)
我认为我可以通过使用Option<GameIterator<...>>和init()方法解决初始化问题,但我想避免这种情况,因为我可以保证game_iter在new()完成后存在.
写这个的惯用方法是什么?
rust ×1