जंग में, संदर्भ कभी भी अशक्त नहीं हो सकते हैं, इसलिए ऐसे मामले में जहां आपको वास्तव में अशक्त होने की जरूरत है, जैसे कि एक लिंक की गई सूची, आप Optionप्रकार का उपयोग करते हैं :
struct Element {
value: i32,
next: Option<Box<Element>>,
}
एक साधारण पॉइंटर की तुलना में मेमोरी के आवंटन और डीरेफेरेंस के कदम के मामले में यह कितना ओवरहेड शामिल है? क्या संकलक / रनटाइम में कुछ "जादू" है, Optionलागत-मुक्त बनाने के लिए , या उससे भी कम महंगा है अगर कोई Optionएक ही enumनिर्माण का उपयोग करके गैर-कोर लाइब्रेरी में खुद को लागू करने के लिए , या एक वेक्टर में पॉइंटर लपेटकर?
Optionएनम में होता है , इसलिए यह उपयोगकर्ता द्वारा परिभाषित के लिए भी काम करेगाOption।