Cargo में एक पैकेज कैसे बनाएं जिसमें library और executable दोनों हों?
सभी को नमस्ते! मैंने अभी-अभी Rust सीखना शुरू किया है और अपने प्रोजेक्ट को व्यवस्थित करने की कोशिश कर रहा हूँ। मेरे पास कुछ लॉजिक है जिसे मैं पुनः उपयोग करना चाहता हूँ: उदाहरण के लिए, संख्याओं के साथ काम करने के लिए functions (factorial, Fibonacci numbers)। मैं चाहता हूँ कि ये functions एक library के रूप में उपलब्ध हों (ताकि उन्हें `use` के माध्यम से अन्य प्रोजेक्ट्स में शामिल किया जा सके), लेकिन साथ ही मेरे पास एक executable file (binary) हो जो चले और कंसोल के माध्यम से इन functions के काम को प्रदर्शित करे।
मैंने `cargo new my_project` के माध्यम से एक प्रोजेक्ट बनाया, और इसने केवल `src/main.rs` बनाया। मैंने पढ़ा है कि `src/lib.rs` जोड़ा जा सकता है, लेकिन `Cargo.toml` को सही तरीके से कैसे कॉन्फ़िगर करें? क्या `[lib]` या `[[bin]]` जैसा कुछ लिखना आवश्यक है? और यदि मैं binary का उपयोग करना चाहता हूँ, और library को अन्य crates में शामिल करना चाहता हूँ, तो binary को कैसे run करूँ?
यहाँ एक उदाहरण है जो मैं करने की कोशिश कर रहा हूँ:
```rust
// src/lib.rs
pub fn factorial(n: u64) -> u64 {
(1..=n).product()
}
```
```rust
// src/main.rs
mod lib; // क्या यह सही है?
fn main() {