Avatar ·

Confusión con módulos en Rust cuando existen main.rs y lib.rs

¡Hola! Soy nuevo en Rust y estoy tratando de entender el sistema de módulos. Tengo un proyecto que creé con `cargo new my_project`. Dentro aparecieron dos archivos: `main.rs` y `lib.rs`. Pensé que podría simplemente declarar un módulo en uno de ellos y usarlo en el otro, pero nada funciona. Aquí está mi estructura: ``` my_project/ ├── Cargo.toml ├── src/ │ ├── main.rs │ └── lib.rs ``` Quiero definir una función en `lib.rs` y llamarla desde `main.rs`. Intenté escribir en `lib.rs`: ```rust mod utils { pub fn greet(name: &str) -> String { format!("Hello, {}!", name) } } ``` Y en `main.rs`: ```rust mod utils; use utils::greet; fn main() { println!("{}", greet("Alice")); } ``` Pero el compilador da un error: `error[E0432]: unresolved import 'utils::greet'`. También probé diferentes combinaciones de `pub mod`, `use crate::`, pero sigo confundido. ¿Por qué el módulo definido en `lib.rs` no es visible desde `main.rs`? ¿Y cómo organizar correctamente el código?