Rust प्रोजेक्ट डॉक्यूमेंटेशन: पूरी गाइड A से Z तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: Rust में डॉक्यूमेंटेशन क्यों ज़रूरी है?

\n\n

Rust अपनी मेमोरी सुरक्षा, परफॉरमेंस और सख्त टाइप सिस्टम के लिए मशहूर है। लेकिन सबसे अच्छा कोड भी बेकार है अगर कोई समझ नहीं पाता कि उसका उपयोग कैसे करें। अच्छा डॉक्यूमेंटेशन आपके कोड और उपयोगकर्ताओं (छह महीने बाद खुद आप भी शामिल हैं) के बीच एक पुल का काम करता है।

\n\n

खुशी की बात यह है कि Rust में सोर्स कोड से ऑटोमैटिक डॉक्यूमेंटेशन जनरेट करने के लिए शक्तिशाली टूल्स मौजूद हैं। इस लेख में हम पूरी प्रक्रिया को समझेंगे: साधारण कमेंट से लेकर उदाहरणों, लिंक्स और गणितीय फॉर्मूले वाली पूरी डॉक्यूमेंटेशन बनाने तक।

\n\n

1. बुनियादी बातें: doc-कमेंट और rustdoc

\n\n

Rust में दो तरह के कमेंट होते हैं: सामान्य (// और /* */) और डॉक्यूमेंटेशन वाले (/// और //!)। आखिरी वाले rustdoc टूल द्वारा प्रोसेस होते हैं, जो HTML डॉक्यूमेंटेशन जनरेट करता है।

\n\n

1.1. बाहरी और आंतरिक doc-कमेंट

\n\n
    \n
  • /// — बाहरी कमेंट। यह किसी एलिमेंट (फंक्शन, स्ट्रक्चर, ट्रेट) से पहले लिखा जाता है और उसका वर्णन करता है।
  • \n
  • //! — आंतरिक कमेंट। इसका उपयोग मॉड्यूल, क्रेट या फ़ाइल को डॉक्यूमेंट करने के लिए किया जाता है।
  • \n
\n\n
/// n का फैक्टोरियल निकालता है।\n///\n/// # उदाहरण\n/// ```\n/// let result = factorial(5);\n/// assert_eq!(result, 120);\n/// ```\npub fn factorial(n: u32) -> u32 {\n    (1..=n).product()\n}\n\n//! # मेरा सुपर-क्रेट\n//!\n//! यह क्रेट गणित से जुड़े कामों के लिए उपयोगिताएँ प्रदान करता है।\n//! अधिक जानकारी के लिए [डॉक्यूमेंटेशन](https://example.com) देखें।
\n\n

1.2. डॉक्यूमेंटेशन जनरेट करना

\n\n

डॉक्यूमेंटेशन जनरेट करने के लिए यह कमांड चलाएँ:

\n\n
cargo doc --open
\n\n

यह कमांड आपके प्रोजेक्ट के सभी doc-कमेंट को स्कैन करेगा, target/doc/ फ़ोल्डर में HTML फ़ाइलें बनाएगा और उन्हें ब्राउज़र में खोलेगा। आपको मॉड्यूल, फंक्शन और स्ट्रक्चर की सूची वाला एक पेज दिखेगा - बिल्कुल docs.rs जैसा।

\n\n

2. डॉक्यूमेंटेशन सेक्शन: इसे पढ़ने लायक कैसे बनाएँ

\n\n

सिर्फ कमेंट लिख देना काफी नहीं है। डॉक्यूमेंटेशन को उपयोगी बनाने के लिए उसे स्ट्रक्चर्ड होना चाहिए। rustdoc Markdown को सपोर्ट करता है, इसलिए आप हेडिंग, लिस्ट, लिंक और कोड ब्लॉक का उपयोग कर सकते हैं।

\n\n

2.1. मानक सेक्शन

\n\n

आमतौर पर इन सेक्शन का उपयोग किया जाता है (# से शुरू होते हैं):

\n\n
    \n
  • # Examples — उपयोग के एक या अधिक उदाहरण।
  • \n
  • # Panics — किन परिस्थितियों में फंक्शन पैनिक करता है।
  • \n
  • # Errors — अगर फंक्शन Result रिटर्न करता है, तो संभावित एरर का वर्णन।
  • \n
  • # Safety — unsafe फंक्शन के लिए अनिवार्य।
  • \n
  • # Arguments — पैरामीटर का वर्णन (हालांकि इसे अक्सर टेक्स्ट में ही समझाया जाता है)।
  • \n
\n\n
/// फ़ाइल की सामग्री पढ़ता है और उसे स्ट्रिंग के रूप में लौटाता है।\n///\n/// # Arguments\n/// * `path` — फ़ाइल का पथ।\n///\n/// # Errors\n/// अगर फ़ाइल मौजूद नहीं है या पढ़ने योग्य नहीं है, तो `io::Error` लौटाता है।\n///\n/// # Panics\n/// अगर पथ में नल बाइट है, तो पैनिक करता है।\n///\n/// # Examples\n/// ```\n/// let content = read_file("hello.txt").unwrap();\n/// println!("{}", content);\n/// ```\npub fn read_file(path: &str) -> Result<String, std::io::Error> {\n    std::fs::read_to_string(path)\n}
\n\n

2.2. लिंक और क्रॉस-रेफरेंस

\n\n

आप कोड के दूसरे एलिमेंट को लिंक कर सकते हैं। rustdoc उन्हें ऑटोमैटिक हाइपरलिंक में बदल देगा:

\n\n
/// कॉम्बिनेशन निकालने के लिए [`factorial`] फंक्शन का उपयोग करता है।\n/// मॉड्यूल [`math::combinatorics`] भी देखें।\npub fn combinations(n: u32, k: u32) -> u32 {\n    factorial(n) / (factorial(k) * factorial(n - k))\n}
\n\n

अगर आपको किसी बाहरी

ब्लॉग

पुस्तक अनुशंसाएँ