【发布时间】:2015-11-06 10:31:51
【问题描述】:
我目前想使用 GamerIterator 为 Piston 游戏定义一个结构:
pub struct MyGame<'a> {
game_window: GameWindowGLFW,
game_iter: GameIterator<'a, GameWindowGLFW>,
//...
}
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
//...
}
我认为我可以通过使用 Option<GameIterator<...>> 和 init() 方法来解决初始化问题,但我想避免这种情况,因为我可以保证 game_iter 在 new() 完成后存在。
写这个的惯用方式是什么?
【问题讨论】:
标签: rust