Seguindo este guia , criei um projeto Cargo.
src/main.rs
fn main() {
hello::print_hello();
}
mod hello {
pub fn print_hello() {
println!("Hello, world!");
}
}
que corro usando
cargo build && cargo run
e compila sem erros. Agora estou tentando dividir o módulo principal em dois, mas não consigo descobrir como incluir um módulo de outro arquivo.
Minha árvore de projeto se parece com isto
├── src
├── hello.rs
└── main.rs
e o conteúdo dos arquivos:
src/main.rs
use hello;
fn main() {
hello::print_hello();
}
src/hello.rs
mod hello {
pub fn print_hello() {
println!("Hello, world!");
}
}
Quando eu compilo com cargo build
eu obtenho
error[E0432]: unresolved import `hello`
--> src/main.rs:1:5
|
1 | use hello;
| ^^^^^ no `hello` external crate
Tentei seguir as sugestões do compilador e modifiquei main.rs
para:
#![feature(globs)]
extern crate hello;
use hello::*;
fn main() {
hello::print_hello();
}
Mas isso ainda não ajuda muito, agora eu entendo:
error[E0463]: can't find crate for `hello`
--> src/main.rs:3:1
|
3 | extern crate hello;
| ^^^^^^^^^^^^^^^^^^^ can't find crate
Existe um exemplo trivial de como incluir um módulo do projeto atual no arquivo principal do projeto?