इस व्यापक गाइड के साथ रस्ट में टीओएमएल फाइलों को प्रभावी ढंग से संभालने का तरीका जानें।

कॉन्फ़िगरेशन फ़ाइलें सॉफ़्टवेयर विकास और सिस्टम प्रशासन में महत्वपूर्ण भूमिका निभाती हैं सॉफ़्टवेयर व्यवहार को विभिन्न परिवेशों और उपयोगकर्ताओं के अनुकूल बनाने के लिए उसे अनुकूलित और परिष्कृत करना पसंद। कॉन्फ़िगरेशन फ़ाइलें कई प्रकार की होती हैं, जैसे YAML और TOML।

TOML (टॉम की स्पष्ट न्यूनतम भाषा) अपने लिए कई कॉन्फ़िगरेशन फ़ाइल स्वरूपों के बीच एक शक्तिशाली और उपयोगकर्ता के अनुकूल विकल्प के रूप में सामने आती है। सिंटैक्स और यह अधिक सहज और सरलता प्रदान करने के लिए मौजूदा कॉन्फ़िगरेशन फ़ाइल स्वरूपों की कमियों को कैसे संबोधित करता है विकल्प।

TOML फ़ाइल को समझना

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

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

instagram viewer

टीओएमएल की बहुमुखी प्रतिभा आपको व्यापक उपयोग के मामलों को समायोजित करने के लिए जटिल कॉन्फ़िगरेशन को आसानी से व्यक्त करने की अनुमति देती है। TOML कई सुविधाएँ और कार्यक्षमता प्रदान करता है, जो इसे कॉन्फ़िगरेशन उद्देश्यों के लिए एक आदर्श विकल्प बनाता है।

  1. सहज संरचना: TOML एक पदानुक्रमित संरचना को अपनाता है जिसमें तालिकाएँ, कुंजी-मूल्य जोड़े और सरणियाँ शामिल होती हैं। TOML का संगठन जटिल कॉन्फ़िगरेशन सेटिंग्स के स्पष्ट और तार्किक प्रतिनिधित्व की अनुमति देता है।
  2. टिप्पणियाँ और रिक्त स्थान: TOML इनलाइन और मल्टीलाइन टिप्पणियों का समर्थन करता है, जिससे आप अपनी कॉन्फ़िगरेशन फ़ाइलों को प्रभावी ढंग से एनोटेट और दस्तावेज़ित कर सकते हैं। मुख्य रूप से पठनीयता सुनिश्चित करने और अनावश्यक शोर को कम करने के लिए व्हाइटस्पेस को नजरअंदाज कर दिया जाता है।
  3. सशक्त टाइपिंग: TOML में प्रत्येक मान एक विशिष्ट डेटा प्रकार से जुड़ा होता है, स्ट्रिंग से लेकर पूर्णांक, फ़्लोट, बूलियन और दिनांक तक। TOML का मजबूत टाइपिंग प्रवर्तन त्रुटि-मुक्त प्रसंस्करण के लिए डेटा अखंडता बनाए रखने में सहायता करता है।
  4. नेस्टेड संरचनाओं के लिए समर्थन: TOML पदानुक्रमित कॉन्फ़िगरेशन प्रतिनिधित्व के लिए तालिकाओं के भीतर नेस्टिंग तालिकाओं की सुविधा प्रदान करता है। बहु-आयामी सेटिंग्स या जटिल एप्लिकेशन सेटअप से निपटने के दौरान नेस्टेड संरचनाएं फायदेमंद होती हैं।
  5. ऐरे और इनलाइन टेबल समर्थन: TOML अनावश्यक या कॉम्पैक्ट डेटा संरचनाओं को व्यक्त करने में लचीलेपन के लिए सरणियाँ और इनलाइन टेबल प्रदान करता है।

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

यहां कॉन्फ़िगरेशन के लिए एक सरल TOML फ़ाइल का एक उदाहरण दिया गया है:

[सर्वर]
पत्तन = 8080
मेज़बान = "लोकलहोस्ट"
डिबग = असत्य

[डेटाबेस]
नाम = "माईडेटाबेस"
उपयोगकर्ता नाम = "व्यवस्थापक"
पासवर्ड = "गुप्त पासवर्ड"

इस TOML फ़ाइल में दो खंड हैं जिनमें विशिष्ट कॉन्फ़िगरेशन विकल्पों का प्रतिनिधित्व करने वाले कुंजी-मूल्य जोड़े हैं। यहां ही पत्तन में कुंजी [सर्वर] अनुभाग पर एक पोर्ट नंबर निर्दिष्ट करता है मेज़बान कुंजी जो सर्वर का होस्टनाम निर्दिष्ट करती है।

जंग में TOML फ़ाइलों के साथ कार्य करना

रस्ट, एक ऐसी भाषा जो सुरक्षा, प्रदर्शन और डेवलपर अनुभव पर गर्व करती है, ने अपने लोकाचार के साथ सहज एकीकरण के कारण TOML फ़ाइलों को अपने कॉन्फ़िगरेशन प्रारूप के रूप में चुना।

आप TOML का उपयोग करने के रस्ट के निर्णय का श्रेय कई प्रमुख कारकों को दे सकते हैं। सबसे पहले, TOML पठनीयता और अभिव्यंजना के बीच एक सामंजस्यपूर्ण संतुलन बनाता है। इसके अतिरिक्त, टीओएमएल का न्यूनतम दृष्टिकोण यह सुनिश्चित करता है कि यह रस्ट के डिजाइन दर्शन के साथ संरेखित होकर अनावश्यक जटिलता से मुक्त रहे।

रस्ट के पारिस्थितिकी तंत्र में TOML फ़ाइलों के साथ काम करने के लिए कई तृतीय-पक्ष क्रेट हैं toml सबसे लोकप्रिय के रूप में टोकरा।

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

को रस्ट में तृतीय-पक्ष पैकेज के साथ काम करें, कार्गो के साथ एक रस्ट प्रोजेक्ट बनाएं और इस निर्देश को इसमें जोड़ें निर्भरताएँ आपके प्रोजेक्ट का अनुभाग कार्गो.टीओएमएल स्थापित करने और उपयोग करने के लिए फ़ाइल toml आपके रस्ट प्रोजेक्ट में टोकरा:

[निर्भरताएं]
toml = "0.5"

टीओएमएल के लिए डेटा क्रमबद्धता और अक्रमांकन, आपको सर्ड क्रेट की आवश्यकता होगी. toml टोकरा सूक्ष्मता से अंतरसंचालन करता है सर्दे डेटा प्रोसेसिंग के लिए.

[निर्भरताएं]
सर्दे = {संस्करण = "1.0", विशेषताएँ = ["व्युत्पन्न"] }
toml = "0.5"

एक बार जब आप जोड़ लें toml और सर्दे निर्भरता के रूप में टोकरे, आप उन्हें अपने रस्ट कोड में आयात कर सकते हैं और इसकी कार्यक्षमताओं का उपयोग कर सकते हैं।

उपयोग टॉमल;

toml क्रेट TOML फ़ाइलों को पढ़, लिख और पार्स कर सकता है।

जंग के साथ TOML फ़ाइलें पढ़ना

जोड़ने के बाद toml प्रोजेक्ट निर्भरता के रूप में क्रेट और अपने प्रोजेक्ट में क्रेट आयात करके, आप अपने रस्ट प्रोग्राम में TOML फ़ाइलें पढ़ सकते हैं।

सबसे पहले, आपको बिल्ट-इन के साथ TOML फ़ाइल खोलनी होगी एफ.एस टोकरा फ़ाइल संरचना:

उपयोग std:: fs:: फ़ाइल;
उपयोग std:: io:: पढ़ें;

fnमुख्य() {
होने देनामुठ फ़ाइल = फ़ाइल:: खुला("config.toml")।अपेक्षा करना("फ़ाइल खोलने में असफल");
होने देनामुठ सामग्री = डोरी::नया();
फ़ाइल.read_to_string(&मुठ सामग्री)
।अपेक्षा करना("फ़ाइल पढ़ने में विफल");

// इस बिंदु पर, `सामग्री` में TOML फ़ाइल की सामग्री शामिल है
println!("{}", सामग्री);
}

मुख्य फ़ंक्शन खुलता है a कार्गो.टीओएमएल के साथ फ़ाइल करें फ़ाइल:: खोलें विधि और फ़ाइल की सामग्री को एक स्ट्रिंग में पढ़ता है read_to_string सामग्री को कंसोल पर प्रिंट करने से पहले विधि println! मैक्रो.

TOML फ़ाइल की सामग्री को एक स्ट्रिंग के रूप में पढ़ना उपयोगी है, लेकिन ज्यादातर मामलों में, आप डेटा को अधिक संरचित प्रारूप में लोड करना चाहते हैं। जंग हमें इसकी अनुमति देती है संरचना प्रकार परिभाषित करें जो हमारी TOML फ़ाइलों की डेटा संरचना का प्रतिनिधित्व करता है। अब आप इसका उपयोग कर सकते हैं toml इन संरचनाओं में TOML डेटा को स्वचालित रूप से डिसेरिएलाइज़ करने के लिए क्रेट।

यहां बताया गया है कि आप अपने प्रोजेक्ट की सामग्री कैसे पढ़ सकते हैं कार्गो.टीओएमएल फ़ाइल करें और उन्हें कंसोल पर प्रिंट करें:

उपयोग सर्डे:: डिसेरिएलाइज़;
उपयोग एसटीडी:: एफएस;

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़)]
structकार्गोटोमल {
#[अनुमति दें (मृत_कोड)]// संपूर्ण संरचना के लिए डेड कोड चेतावनी अक्षम करें
पैकेज: पैकेज,
#[अनुमति दें (मृत_कोड)]
निर्भरताएँ: निर्भरताएँ,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़)]
structपैकेट {
#[अनुमति दें (मृत_कोड)]
नाम: डोरी,
#[अनुमति दें (मृत_कोड)]
संस्करण: डोरी,
#[अनुमति दें (मृत_कोड)]
संस्करण: डोरी,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़)]
structनिर्भरता {
#[अनुमति दें (मृत_कोड)]
सर्दे: सर्देनिर्भरता,
#[अनुमति दें (मृत_कोड)]
टॉमल: डोरी,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़)]
structसर्देनिर्भरता {
#[अनुमति दें (मृत_कोड)]
संस्करण: डोरी,
#[अनुमति दें (मृत_कोड)]
विशेषताएँ: वी.ई.सी<डोरी>,
}

fnमुख्य() {
होने देना toml_str = fs:: read_to_string("कार्गो.टोमल")।अपेक्षा करना("Cargo.toml फ़ाइल पढ़ने में विफल");

होने देना कार्गो_टोएमएल: कार्गोटोएमएल = टॉमल:: from_str(&toml_str).उम्मीद("Cargo.toml को डिसेरिएलाइज़ करने में विफल");

println!("{:#?}", कार्गो_टोएमएल);
}

कार्गोटोमल, पैकेट, निर्भरता, और सर्देनिर्भरता structs TOML फ़ाइल की संरचना का प्रतिनिधित्व करते हैं। संरचनाओं को इसके साथ एनोटेट किया गया है #[अनुमति दें (मृत_कोड)] संरचनाओं के लिए मृत कोड चेतावनियों को अक्षम करने की विशेषताएँ।

मुख्य फ़ंक्शन की सामग्री पढ़ता है कार्गो.टीओएमएल में फ़ाइल करें toml_str परिवर्तनशील और from_str की विधि toml क्रेट TOML स्ट्रिंग को पढ़ता है और सामग्री को डिसेरिएलाइज़ करता है कार्गो_टोएमएल चर।

इसे चलाने का आउटपुट यहां दिया गया है मुख्य समारोह:

जंग के साथ TOML फ़ाइलों में डेटा लिखना

आपके प्रोग्राम से कॉन्फ़िगरेशन फ़ाइलें बनाने के लिए TOML फ़ाइलों में डेटा लिखना आसान है।

यहां बताया गया है कि किसी संरचना को TOML में कैसे क्रमबद्ध किया जाए और सामग्री को कैसे लिखा जाए config.toml अपने प्रोजेक्ट की रूट निर्देशिका में फ़ाइल करें:

उपयोग std:: fs:: फ़ाइल;
उपयोग std:: io:: लिखें;
उपयोग सर्डे:: क्रमबद्ध करें;
उपयोग toml:: to_string;

#[व्युत्पन्न (क्रमबद्ध)]
structसर्वर कॉन्फिग {
मेज़बान: डोरी,
पत्तन: यू 16,
समय समाप्त: उ32,
}

fnwrite_config_to_file(कॉन्फ़िगरेशन: और सर्वरकॉन्फ़िग, फ़ाइल_पथ: औरएसटीआर) -> परिणामडिब्बा<दीन std:: त्रुटि:: त्रुटि>> {
होने देना toml_string = to_string (कॉन्फ़िगरेशन)?;
होने देनामुठ फ़ाइल = फ़ाइल:: बनाएँ (फ़ाइल_पथ)?;
फ़ाइल.write_all (toml_string.as_bytes())?;
ठीक(())
}

fnमुख्य() {
होने देना कॉन्फिग = सर्वर कॉन्फिग {
मेज़बान: "लोकलहोस्ट".to_स्वामित्व(),
पत्तन: 8000,
समय समाप्त: 30,
};

अगरहोने देनाग़लती होना(ई) = write_config_to_file(&config, "config.toml") {
eprintln!("गलती: {}", इ);
} अन्य {
println!("कॉन्फिग फ़ाइल सफलतापूर्वक बनाई गई।");
}
}

write_config_to_file फ़ंक्शन के एक उदाहरण को संदर्भित करता है सर्वर कॉन्फिग के लिए संरचना और फ़ाइल पथ config.toml फ़ाइल स्ट्रक्चर इंस्टेंस को एक स्ट्रिंग में परिवर्तित करती है और बनाती है config.toml निर्दिष्ट फ़ाइल पथ में फ़ाइल करें। अंत में, यह TOML फ़ाइल का उपयोग करके TOML स्ट्रिंग लिखता है सब लिखो समारोह।

मुख्य फ़ंक्शन प्रारंभ करता है a सर्वर कॉन्फिग struct ऑब्जेक्ट, कॉल करता है write_config_to_file आवश्यक डेटा के साथ, और ऑपरेशन की स्थिति के आधार पर कंसोल पर एक संदेश प्रिंट करता है।

निर्भरता प्रबंधन के लिए कार्गो TOML फ़ाइलों का उपयोग करता है

कार्गो, रस्ट के निर्भरता प्रबंधक और बिल्ड टूल, निर्भरता को निर्दिष्ट और प्रबंधित करने के लिए TOML फ़ाइलों का उपयोग करते हैं।

जब आप कार्गो के साथ एक नया रस्ट प्रोजेक्ट बनाते हैं, तो यह आपके प्रोजेक्ट की रूट डायरेक्टरी में एक Cargo.toml फ़ाइल उत्पन्न करता है जो आपके प्रोजेक्ट के लिए मेनिफेस्ट के रूप में कार्य करता है। यहां आप अपने प्रोजेक्ट के मेटाडेटा, निर्भरता, बिल्ड कॉन्फ़िगरेशन और अन्य सेटिंग्स की घोषणा कर सकते हैं।