>>585
こんなのでどうだろう
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=871e0b5209dab043741c765000be6e5a

他言語からすると面倒に感じるかも
「要素 i への可変参照を持ちつつ、Vec全体への可変参照を持つ」のは借用チェッカーに引っかかるパターン
if unit.id != self.id の判定が必要なように「all_unitsの中にunitがいるかもしれない」という状況をそもそも借用チェッカーは防ぎたいので

なので、 split_at_mut() を使って参照範囲を ([i] への可変参照, 他の要素への可変参照) に分けてみた

他には Cell (内部可変性) を使うパターンもあるけど、このケースでこれを使うのはちょっと微妙な気がする