как разместить мои модули Rust в src для доступа через мое приложение - PullRequest
0 голосов
/ 20 июня 2019

Я создал структуру пакета, но компилятор говорит, что не может найти мой модуль.Я новичок в ржавчине, с фоном в Java & C #

Я пытался использовать префиксы self и super, но не могу получить код для компиляции

У меня следующая структура:

src
|_lib.rs
|_common
| |_mod.rs
| |_service.rs
|
|_animals
  |_mod.rs
  |_domestic
  | |_mod.rs
  | |_dog.rs
  |_wild
  |_mod.rs

вот упрощенные файлы:

dog.rs

pub struct Dog {
  ...
}

impl Dog {
    ...
}

внутренний> мод.рс

pub mod dog;

животные> мод.рс

pub mod domestic;
pub mod wild;

src> lib.rs

pub mod common;
pub mod animals;

common> service

use animals::domestic::dog;

Из того, что я прочитал (и, возможно, неправильно понял) в книге Rust,это должно сработать.

Но компилятор выдает следующую ошибку:

could not find `animals` in `{{root}}`

Я изложил это в стиле Rust?и что мне нужно изменить, чтобы заставить его скомпилировать.

Спасибо

1 Ответ

1 голос
/ 21 июня 2019

В commons > service

use crate::animals::domestic::dog;

Ключевое слово crate указывает компилятору начинать с корня пакета; т. е. то, что следует, представляет собой абсолютный путь.

Кроме того, вы можете использовать относительные пути и использовать ключевое слово super, чтобы подняться на один уровень вверх.

Подробнее см. в этой книге о ржавчине

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