main.rs और lib.rs होने पर Rust में मॉड्यूल संबंधी भ्रम
नमस्ते! मैं 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` से क्यों दिखाई नहीं देता? और कोड को सही ढंग से कैसे व्यवस्थित करूँ?