Вы, похоже, перепутали объявление модуля (mod <name>
) и импорт модуля (use <name>
).Ключевое слово mod
используется для объявления нового модуля либо в другом файле, либо с фигурными скобками сразу после ключевого слова.Затем вы можете импортировать модуль с помощью use
.
. При использовании mod
для объявления модуля в другом файле он просматривается в определенных местах.Например, когда вы используете следующий оператор в main.rs
, mod.rs
или lib.rs
...
mod abc;
... компилятор будет искать содержимое модуля в ./abc.rs
и abc/mod.rs
.Однако, если у меня есть такой же оператор в другом файле, например def.rs
, он будет проверять def/abc.rs
и def/abc/mod.rs
.Вот почему ваш код не компилируется.
Чтобы это исправить, объявите модуль в главном файле, а затем импортируйте его в другое место.Вот как будет выглядеть код:
// in main.rs
mod args_parser;
mod trim;
use args_parser::...; // use whatever you need in main
// in trim.rs
use crate::args_parser::...; // use whatever you need in trim - note the crate:: prefix