Я действительно не могу найти, как включать (или импортировать, вводить или 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
Я прочитал руководство на ржавчине, но до сих пор не могу понять, как делать импорт.