У меня файловая структура выглядит примерно так:
src/
--clients/
----queue_client/
------mod.rs
--data_evaluator/
----data_evaluator.rs
В data_evaluator я хочу использовать модуль queue_client
, но когда я делаю mod queue_client
в data_evaluator.rs
-, я получаю следующую ошибку - File not found for module queue_client
. Он находит модуль только в том случае, если я перемещаю его в папку data_evaluator
.
У меня вопрос: как правильно использовать модули, которые находятся за пределами каталога кода потребителя? Приносим извинения, если есть простой способ сделать это, я довольно долго пытался поискать и не мог найти способ.
mod
иuse
. Использование определяет новый модуль и должен находиться в непосредственном родительском элементе нового модуля. Итак, ваша структура должна бытьcrate root { mod clients { mod queue_client }; mod data_evaluator { use crate::clients::queue_client } }
. Также обратите внимание, чтоmod.rs
немного устарел: с версии 2018 годаsrc/main.rs; module/submodule.rs; module.rs
является предпочтительной файловой структурой. Также обратите внимание, что вы можете использовать толькоuse
элементов, отмеченных какpub
. - person Ivan C   schedule 27.04.2021