## 事象 ``` cannot move out of `generator`, a captured variable in an `FnMut` closure E0507 move occurs because `generator` has type `external::gtfs::extended::course::CourseGenerator`, which does not implement the `Copy` trait ``` [[Copyトレイト]]が実装されていないからmoveが発生するのにmoveできないようなエラー。この例では`generator`がインスタンス。 ## チェックすべきポイント ### `generator`インスタンスのメソッドで第1引数が`&mut self`になっているか。 ```rust pub fn generate(&mut self, trip_with_stops: &[TripWithStop]) -> Course { ``` `mut self`だとmoveが必要になってしまう。 ### インスタンスが`mut`になっているか `mut`が抜けているとImmutableであるため、`generate`メソッドは使えない。 ```rust let mut generator = CourseGenerator::new(); ```