Запутался насчет модулей ржавчины - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть три файла в src/, примерно так:

lib.rs

pub mod first

first.rs

fn hello() {}

main.rs

pub mod lib

Это дает мне сообщение об ошибке:

error[E0583]: file not found for module `first`
 --> src/lib.rs:1:9
  |
1 | pub mod first;
  |         ^^^^^
  |
  = help: name the file either lib/first.rs or lib/first/mod.rs inside the directory "src"

Теперь, если я удаляю pub mod lib из main.rs, все компилируется нормально.

Я не понимаю, почему это происходит.

1 Ответ

2 голосов
/ 12 апреля 2019

Помощь, которую говорит компилятор, очень значима.Когда вы пишете pub mod first; внутри lib.rs, он проверяет наличие файла first.rs или first внутри папки lib и файла mod.rs.

Обратите внимание, что mod.rs использования изменены с Rust 2018. Ссылка

Теперь, если я удаляю Pub Mod Lib из main.rs, все компилируетсяхорошо.

Когда вы удаляете pub mod lib; из своей основной,

Вы в основном говорите, что этот код не будет использоваться в рабочей среде, поэтому его даже не нужно компилировать.Так что в основном код не будет включен для компиляции.

Вот почему он работает при удалении pub mod lib;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...