Avatar ·

Rust में enum के सभी वेरिएंट को कैसे iterate करें?

सभी को नमस्कार! मैंने अभी Rust सीखना शुरू किया है और एक समस्या का सामना किया। मेरे पास एक enum है जो रंगों का वर्णन करता है: ```rust enum Color { Red, Green, Blue, Yellow, } ``` मुझे सभी संभावित रंगों को स्क्रीन पर प्रदर्शित करना है या, उदाहरण के लिए, उन्हें एक vector में सहेजना है। अन्य भाषाओं, जैसे Java या C#, में मैं `values()` या ऐसा कुछ उपयोग करता। लेकिन Rust में मुझे enum के सभी वेरिएंट को iterate करने का कोई built-in तरीका नहीं मिला। मैंने कुछ इस तरह लिखने की कोशिश की: ```rust for color in Color { println!("{:?}", color); } ``` लेकिन compiler शिकायत करता है कि `Color` `Iterator` trait को implement नहीं करता। यह समझ में आता है कि Rust एक systems language है और इसकी अपनी philosophy है, लेकिन क्या enum के सभी constants को iterate करने का कोई सरल तरीका नहीं है? शायद कोई macro या library है? या क्या हर बार मैन्युअल रूप से एक function लिखना होगा जो सभी वेरिएंट लौटाता है? कृपया बताएं कि यह सही तरीके से कैसे किया जाता है। पहले से धन्यवाद! <<>>

समाधान: `strum` crate का उपयोग करें