Avatar ·

الارتباك مع الوحدات في Rust عند وجود main.rs و lib.rs

مرحبًا! أنا مبتدئ في Rust وأحاول فهم نظام الوحدات. لدي مشروع أنشأته عبر `cargo new my_project`. وُجد بداخله ملفان: `main.rs` و `lib.rs`. ظننت أنني سأتمكن ببساطة من تعريف وحدة في أحدهما واستخدامها في الآخر، لكن لا شيء يعمل. إليك هيكلي: ``` my_project/ ├── Cargo.toml ├── src/ │ ├── main.rs │ └── lib.rs ``` أريد تعريف دالة في `lib.rs` واستدعاءها من `main.rs`. جربت كتابة في `lib.rs`: ```rust mod utils { pub fn greet(name: &str) -> String { format!("Hello, {}!", name) } } ``` وفي `main.rs`: ```rust mod utils; use utils::greet; fn main() { println!("{}", greet("Alice")); } ``` لكن المترجم يظهر خطأ: `error[E0432]: unresolved import 'utils::greet'`. جربت أيضًا تركيبات مختلفة مثل `pub mod` و `use crate::`، لكني ما زلت مرتبكًا. لماذا الوحدة المعرفة في `lib.rs` غير مرئية من `main.rs`؟ وكيف أنظم الكود بشكل صحيح؟