Implementing traits in a separate file

I had a problem implementing trait in a separate file. I had implemented the struct and the trait in my own modules, but when I tried to use the trait's function with the struct I got the following error:
error[E0599]: no method named `next_move` found for struct `Random` in the current scope
  -- src/
12 |     game.make_move(eng.next_move(game));
   |                        ^^^^^^^^^ method not found in `Random`
  ::: src/engine/
5  |     fn next_move(self, game: Game) - ChessMove;
   |        --------- the method is available for `Random` here
8  | pub struct Random { }
   | ----------------- method `next_move` not found for this struct
   = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
1  | use crate::engine::Engine;

So the solution was to add use crate::engine::Engine; to, so that the scope where the function was called knew about the trait



About Me