से वापसी मूल्य के रूप में लक्षण मेरे पास दो enums, NormalColour
और BoldColour
हैं, जिनमें से दोनों Colour
विशेषता को लागू करते हैं। उनमें Blue
, BoldGreen
, और इसी तरह शामिल हैं।फ़ंक्शन
मैं परिणाम पर paint
फ़ंक्शन कॉल,, एक ही समारोह से इन प्रकार के दोनों के मूल्यों वापस जाने के लिए उन्हें इलाज के रूप में यद्यपि वे सिर्फ एक Colour
मूल्य रहे हैं चाहते हैं, लेकिन मैं के लिए एक रास्ता नहीं मिल रहा है मेरे लिए ऐसा करने में जंग को मजबूर करना।
pub trait Colour {
fn paint(&self, input: &str) -> String;
}
fn file_colour(stat: &io::FileStat) -> Colour {
if stat.kind == io::TypeDirectory {
Blue
} else if stat.perm & io::UserExecute == io::UserExecute {
BoldGreen
} else {
White
}
}
किस प्रकार काम करने के लिए मैं समारोह वापसी करने की क्या ज़रूरत है: मैं कुछ इस तरह लिखने में सक्षम होना चाहते हैं?
मैं अंततः Colour
लागू करने के लिए और अधिक प्रकार बनाना चाहता हूं, यही कारण है कि मुझे दो enums को एक बड़े enum में बदलने में कोई दिलचस्पी नहीं है।
हस्ताक्षर कैसा दिखता है? –
@ जुआन इबीपीना: यह उस समय '~ रंग 'का रिटर्न प्रकार था; अब, यह 'बॉक्स' है। तथ्य और तथ्य के रूप में, 'स्थिर' रंग शायद रंग भी काम करेगा। –
@ChrisMorgan मेरे पास मेरे डिज़ाइन में ऑब्जेक्ट प्रकारों का एक सेट है जो एक सामान्य विशेषता के माध्यम से संबंधित हो सकता है, और एक enum लगभग त्रासदी होगी क्योंकि enum में लगभग 50-75 सदस्य होंगे। इसके अलावा मैं उस मामले के लिए एक विकल्प वापस करना चाहता हूं जहां रिमोट लड़के ने नाम गलत लिखा था। क्या आप कुछ सुझाव दे सकते हैं? –