Rust でこのようなものを実装する一般的なパターンはありますか?
エラーは
cannot borrow `sprite` as mutable because it is also borrowed as immutable
私は問題を理解していますが、Rust でこのようなものを実装する方法がわかりません。
struct Sprite {
position: i32,
}
impl Sprite {
pub fn left(&mut self) {
self.position += 1;
}
}
struct Game<'g> {
sprite: &'g Sprite,
}
impl<'g> Game<'g> {
pub fn new(sprite: &Sprite) -> Game {
Game { sprite: sprite }
}
}
fn main() {
let mut sprite = Sprite { position: 3 };
let game = Game::new(&sprite);
sprite.left();
}
コードはプレイグラウンドでも入手できます。