Я действительно не могу найти, как включать (или импортировать, вводить или smth.) Функцию из одного файла (модуля) в другой.
Вот пример.
Я начинаю новый проект с
cd ~/projects
cargo new proj --bin
cd proj
tree
# output
.
|
-- Cargo.toml
-- src
|
-- main.rs
Затем я main.rs
и создаю новый файл a.rs
(внутри a.rs
src
) со следующим кодом:
// main.rs
fn main() { println!("{}", a::foo()); }
// a.rs
pub fn foo() -> int { 42i }
Я запускаю проект с cargo run
Здесь у меня две ошибки:
- src/main.rs: 2: 20: 2:26 Ошибка: не удалось разрешить. Использование незаявленного модуля
a
- src/main.rs: 2: 20: 2:26 error: unresolved name
a::foo
.
Пока это кажется совершенно очевидным, мне просто нужно каким-то образом импортировать a
.
Я попытался добавить следующие вещи в качестве первой строки в main.rs
-
use a;
→ ошибка: неразрешенный импорт (возможно, вы имелиa::*
видуa::*
?) -
use a::*;
→ ошибка: операторы импорта glob являются экспериментальными и, возможно, ошибками -
use a::foo;
→ ошибка: неразрешенный импортa::foo
. Может быть, недостающийextern crate a
? -
extern crate a; use a::foo;
→ Ошибка: не удается найти ящик дляa
-
extern crate proj; use proj::a::foo;
→ ошибка: не удается найти ящик дляproj
Я прочитал руководство на ржавчине, но до сих пор не могу понять, как делать импорт.