durumis AI द्वारा संक्षेपित पाठ
- रस्ट CLI लिखने के लिए एक बहुत ही उपयुक्त भाषा है, और clap और ratatui लाइब्रेरी का उपयोग करके लॉग इन और लॉग आउट सुविधाओं के साथ एक साधारण CLI प्रोग्राम बनाया गया है।
- clap का उपयोग करके विभिन्न विकल्प और उप-कमांड को परिभाषित किया गया है, और ratatui के साथ इंटरैक्टिव इनपुट विंडो को लागू किया गया है, जिससे उपयोगकर्ता अनुभव और सुरक्षा दोनों को बढ़ाया गया है।
- 18 अप्रैल 2024 तक, लेखक ने रस्ट का उपयोग करके CLI प्रोग्राम कैसे आसानी से लिखा जा सकता है, इसका वर्णन किया है।
मेरे अनुभव के अनुसार, क्लि का सबसे मज़बूत और आसान भाषा लिखने के लिए रस्ट है।
इसकी असाधारण मैक्रो विस्तार योग्यता के द्वारा संरचना स्तर पर सभी बाधाओं और जाँचों को परिभाषित करना और उस प्रकार की मज़बूती को पूरी तरह से प्राप्त करना संभव है।
इस पोस्ट में, हम क्लैप और रतातुई का उपयोग करके लॉगइन और लॉगआउट को संभालने वाले एक सरल CLI उदाहरण प्रोग्राम बनाएँगे, और इसके द्वारा लेखन विधि और उपयोग के बारे में संक्षेप में बताएँगे।
क्लैप की मूल सेटिंग
पहले निर्भरता में निचे दी गयी 4 चीजें जोड़ें।
```javascript atty = { version = "0.2.14", optional = true } structopt = { version = "0.3.18", optional = true } clap = { version = "4.4.18", features = ["derive"] } serde = { version = "1", features = ["derive"] }
ऊपर दिए गए 2 का इस्तेमाल कार्गो कमांड मैपिंग के लिए किया जाता है, और नीचे दिए गए 2 का इस्तेमाल क्लैप पार्सिंग के लिए किया जाता है।
अब कोड को एक-एक करके जोड़ें।
सबसे पहले सबसे ऊपर कमांड प्रकार को परिभाषित करें, और उसके अन्दर एक सबकमांड enum डालें।
SubCommand enum में जल्द ही परिभाषित होने वाले लॉगइन और लॉगआउट कमांड शामिल होंगे।
और जैसा कि ऊपर दिखाया गया है, कमांड को इनिशियलाइज़ करने पर बेसिक फ़्रेम का लिखना पूरा हो जाता है।
इस तरह बनाया गया प्रोग्राम कार्गो रन के द्वारा चलाया जा सकता है या
कार्गो इंस्टाल के द्वारा इंस्टाल करने के बाद भी इसे चलाया जा सकता है।
सबकमांड को परिभाषित करना
अब एक-एक करके सबकमांड को परिभाषित करें।
लॉगइन और लॉगआउट अलग-अलग सबकमांड में बँटेंगे।
एक अलग फ़ाइल बनाकर पहले लॉगइन कमांड को परिभाषित किया।
वैकल्पिक ऑब्जेक्ट के द्वारा फ़्लैग एलिमेंट्स को परिभाषित करें।
short से मतलब -i जैसे शॉर्टकट तैयार करने से है, और long से मतलब --id जैसे फुलटेक्स्ट तैयार करने से है। मदद, स्पष्ट रूप से, मदद के लिए है।
उन फ़्लैग्स को वैल्पिक एलिमेंट्स बनाने के लिए आपको टाइप को वैल्पिक या default_value प्रॉपर्टी देनी होगी।
और उसे ऊपर कमांड ऑब्जेक्ट के सबकमांड में वेरिएंट के रूप में जोड़ दें।
अब लॉगआउट कमांड का नंबर है। यह ज़्यादा आसान है।
क्योंकि इसमें कोई ऑप्शन देने के लिए नहीं है।
ठीक इसी तरह, कमांड के सबकमांड के रूप में रजिस्टर करें।
एंट्री पॉइंट पर भी action को एक enum के रूप में विभाजित किया जाता है, इसलिए पैटर्न मैचिंग से सही प्रकार से विभाजित किया जा सकता है।
और अब चलाएँगे तो
आप देखेंगे कि सबकमांड लिस्ट में ऐड हो गया है।
चलाना भी सही है। ज़रूरी फ़्लैग्स को हटा दें तो यह बिना बताए कुछ नहीं करेगा।
बताने पर यह सही तरीके से काम करेगा। बस फिलहाल यह कुछ काम नहीं