Avatar ·

Confusão com módulos em Rust quando existem main.rs e lib.rs

Olá! Sou novo em Rust e estou tentando entender o sistema de módulos. Tenho um projeto que criei com `cargo new my_project`. Dentro, encontrei dois arquivos: `main.rs` e `lib.rs`. Pensei que poderia simplesmente declarar um módulo em um deles e usá-lo no outro, mas nada funciona. Aqui está minha estrutura: ``` my_project/ ├── Cargo.toml ├── src/ │ ├── main.rs │ └── lib.rs ``` Quero definir uma função em `lib.rs` e chamá-la a partir de `main.rs`. Tentei escrever em `lib.rs`: ```rust mod utils { pub fn greet(name: &str) -> String { format!("Hello, {}!", name) } } ``` E em `main.rs`: ```rust mod utils; use utils::greet; fn main() { println!("{}", greet("Alice")); } ``` Mas o compilador dá erro: `error[E0432]: unresolved import 'utils::greet'`. Também tentei diferentes combinações de `pub mod`, `use crate::`, mas ainda estou confuso. Por que o módulo definido em `lib.rs` não é visível a partir de `main.rs`? E como organizar o código corretamente?