# Maguyva में Rust सपोर्ट: AI-सहायता प्राप्त बदलावों के लिए सुरक्षित कॉन्टेक्स्ट

Canonical source: https://maguyva.ai/hi/languages/rust

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, AST पार्सिंग और सिंबल एक्सट्रैक्शन के साथ Rust को सपोर्ट करता है, ताकि AI एजेंट सख़्त, सुरक्षा-उन्मुख कोड बदलने से पहले मॉड्यूल, impl ब्लॉक, कंस्ट्रक्टर, और डिपेंडेंसी पथों में नेविगेट कर सकें।

## सपोर्ट स्नैपशॉट

- टियर: AST और सिंबल सपोर्ट
- प्रोग्रामिंग
- एक्सटेंशन: .rs
- सिंटैक्स-अवेयर सर्च और स्ट्रक्चरल कॉन्टेक्स्ट के लिए असली AST पार्सिंग।
- नामित सिंबल सिमेंटिक लुकअप और क्रॉस-रेफ़रेंस को फ़ीड करते हैं। रिलेशनशिप एक्सट्रैक्शन सक्षम होने पर ग्राफ़ नेविगेशन उपलब्ध होता है।
- यह भाषा ग्राफ़-अवेयर सर्च में सिंबल्स और रिलेशनशिप्स जोड़ती है; सपोर्टेड एज प्रकार इसके नेटिव कंस्ट्रक्ट्स के अनुसार बदलते हैं।
- AST पार्सिंग और सिंबल एक्सट्रैक्शन, दोनों उपलब्ध हैं।

## सबसे उपयुक्त

- सिस्टम्स, प्लेटफ़ॉर्म, या CLI रिपॉज़िटरी जहां Rust को इसलिए चुना जाता है क्योंकि सटीकता और बदलाव की सुरक्षा वास्तव में मायने रखती है।
- वे टीमें जो ओनरशिप-संवेदनशील या लो-लेवल लॉजिक एडिट करने से पहले Rust कोडबेस को एक्सप्लोर करने में AI सहायता चाहती हैं।
- ऐसे रिपॉज़िटरी जहां मॉड्यूल, जनरेट किए गए टाइप, मैक्रो, और आस-पास की टूलिंग एक-फ़ाइल तर्क को अविश्वसनीय बना देते हैं।

## एजेंट वर्कफ़्लो

- किसी struct या कंपोनेंट का व्यवहार बदलने से पहले यह ट्रेस करें कि वह कहां बनाया जाता है।
- नया गढ़ने के बजाय मॉड्यूल पैटर्न और इम्प्लीमेंटेशन की संरचनाओं की तुलना करें।
- एजेंट से किसी टाइप या हेल्पर को रीफ़ैक्टर करने के लिए कहने से पहले उन पथों को खोजें जो उस पर निर्भर हैं।

## Rust में बदलावों को ऑटोकंप्लीट से कहीं ज़्यादा की ज़रूरत क्यों है

Rust उन सबसे स्पष्ट मामलों में से एक है जहां AI को पहले नेविगेट करना चाहिए और बाद में एडिट करना चाहिए। यह भाषा आमतौर पर इसलिए चुनी जाती है क्योंकि कोड का सही होना मायने रखता है, इसलिए नहीं कि टीम को और ज़्यादा अनुमानों के आधार पर सुझाए गए बदलाव चाहिए। तो "Rust सपोर्ट" का मानदंड ऊंचा होना चाहिए: क्या एजेंट किसी रीफ़ैक्टर का सुझाव देने से पहले मॉड्यूल सीमाओं, impl ब्लॉक, ठोस टाइप निर्माण, और आस-पास के कॉन्टेक्स्ट को समझ सकता है?

यही असली मूल्य की कसौटी है। सिंटैक्स जनरेशन दिलचस्प हिस्सा नहीं है।

## Maguyva वास्तव में Rust में क्या एक्सट्रैक्ट करता है

Maguyva, Rust फ़ंक्शन और इम्प्लीमेंटेशन ब्लॉक को अलग संरचनात्मक अवधारणाओं के रूप में कैप्चर करता है, और struct एक्सप्रेशन को असली इंस्टैंशिएशन मानता है। इससे ग्राफ को यह देखने का एक उपयोगी नज़रिया मिलता है कि ठोस टाइप कहां बनाए जाते हैं, न कि सिर्फ़ कहां नामित किए जाते हैं।

कॉन्फ़िग मैक्रो और stdlib नॉइज़ की एक बड़ी मात्रा भी फ़िल्टर करता है, जो Rust में महत्वपूर्ण है क्योंकि मैक्रो-भारी कोड अन्यथा ग्राफ को उन चीज़ों से भर सकता है जो तकनीकी रूप से वैध कॉल तो हैं, लेकिन जब आप रिपॉज़िटरी के व्यवहार को समझने की कोशिश कर रहे हों तो ज़्यादा उपयोगी नहीं हैं।

## Rust रिपॉज़िटरी के लिए उपयोगी MCP वर्कफ़्लो

सबसे उपयोगी शुरुआती पैटर्न ये हैं:

- जिस struct, enum, या मॉड्यूल-स्वामित्व वाले फ़ंक्शन को आप बदलने वाले हैं, उसके लिए `find_symbol`।
- किसी कोर टाइप को रीफ़ैक्टर करने से पहले, ताकि आपको पता हो कि कौन-से कोड पथ उस पर निर्भर हैं, `dependency_search`।
- "HTTP क्लाइंट के इर्द-गिर्द रीट्राई लॉजिक ट्रेस करें" जैसे वैचारिक प्रॉम्प्ट के लिए, जब पथ कई मॉड्यूल में फैला हो, `get_task_context`।

## यह पेज सबसे ज़्यादा प्रासंगिक कहां है

इस पेज का उपयोग करें अगर आपको Rust में AI सहायता चाहिए, बिना उस सतर्क वर्कफ़्लो को छोड़े जो Rust को इस्तेमाल करने लायक बनाता है। अगर रिपॉज़िटरी सिस्टम्स-ओरिएंटेड से ज़्यादा सर्विस-ओरिएंटेड है, तो [Go](/hi/languages/go) करीबी तुलना है। अगर Rust किसी बड़े एस्टेट में सिर्फ़ एक सरफ़ेस है, तो [स्टैक पृष्ठ](/hi/stack) पर मिश्रित-भाषा की कहानी पार्सर चेकलिस्ट से ज़्यादा मायने रखती है।

## इंजन विवरण

- `impl_item` और `function_item` को अलग-अलग कैप्चर किया जाता है, जिससे कंक्रीट फ़ंक्शन को इम्प्लीमेंटेशन ब्लॉक से अलग करने में मदद मिलती है।
- स्ट्रक्ट एक्सप्रेशन को इंस्टैंशिएशन के रूप में गिना जाता है, इसलिए ग्राफ़ ट्रेस कर सकता है कि टाइप असल में कहाँ बनाए जाते हैं।
- मैक्रो और आम stdlib कंस्ट्रक्टर को आक्रामक रूप से फ़िल्टर किया जाता है ताकि रिलेशनशिप ग्राफ़ रिपॉज़िटरी कोड पर केंद्रित रहे।

## उपयोगी MCP एंट्री पॉइंट

- `find_symbol`: उस स्ट्रक्ट, एनम, या मॉड्यूल-स्वामित्व वाले फ़ंक्शन से शुरू करें जिसकी आपको परवाह है, और वहाँ से विस्तार करें।
- `dependency_search`: किसी कोर टाइप या मॉड्यूल को छूने से पहले, सिर्फ़ लोकल रेफ़रेंस नहीं बल्कि इनबाउंड उपयोग देखने के लिए इसका इस्तेमाल करें।
- `get_task_context`: उपयोगी जब काम कॉन्सेप्चुअल हो, जैसे मॉड्यूल में पुनः-प्रयास तर्क या संसाधन जीवनचक्र को ट्रेस करना।
