あるファイル(モジュール)から別のファイルに関数を含める(またはインポート、挿入、またはその他のWordする)方法が見つかりません。
新しいプロジェクトを開始します
$ cd ~/projects
$ cargo new proj --bin
$ cd proj
$ tree
.
|
-- Cargo.toml
-- src
|
-- main.rs
main.rs
を変更し、次のコードで新しいファイルa.rs
(src
dir内)を作成します。
main.rs
fn main() {
println!("{}", a::foo());
}
a.rs
pub fn foo() -> i32 { 42 }
cargo run
でプロジェクトを実行すると、エラーが発生します。
error[E0433]: failed to resolve: use of undeclared type or module `a`
--> src/main.rs:2:20
|
2 | println!("{}", a::foo());
| ^ use of undeclared type or module `a`
どういうわけかa
をインポートする必要があるようです。 main.rs
の最初の行として次のものを追加しようとしました
use a;
error[E0432]: unresolved import `a`
--> src/main.rs:1:5
|
1 | use a;
| ^ no `a` in the root
use a::*;
error[E0432]: unresolved import `a`
--> src/main.rs:1:5
|
1 | use a::*;
| ^ maybe a missing `extern crate a;`?
error[E0433]: failed to resolve: use of undeclared type or module `a`
--> src/main.rs:4:20
|
4 | println!("{}", a::foo());
| ^ use of undeclared type or module `a`
use a::foo;
error[E0432]: unresolved import `a`
--> src/main.rs:1:5
|
1 | use a::foo;
| ^ maybe a missing `extern crate a;`?
error[E0433]: failed to resolve: use of undeclared type or module `a`
--> src/main.rs:4:20
|
4 | println!("{}", a::foo());
| ^ use of undeclared type or module `a`
extern crate a; use a::foo;
error[E0463]: can't find crate for `a`
--> src/main.rs:1:1
|
1 | extern crate a;
| ^^^^^^^^^^^^^^^ can't find crate
extern crate proj; use proj::a::foo;
error[E0463]: can't find crate for `proj`
--> src/main.rs:1:1
|
1 | extern crate proj;
| ^^^^^^^^^^^^^^^^^^ can't find crate
ガイド を読みましたが、それでもインポートの方法がわかりません。