rustHow to create enum from string in Rust
Enums in Rust can be created from strings using the FromStr trait. This trait is implemented for the str type, allowing us to convert a string into an enum. To do this, we must first define the enum and implement the FromStr trait for it. Then, we can use the str::parse method to convert a string into the enum.
use std::str::FromStr;
#[derive(Debug)]
enum Color {
Red,
Green,
Blue,
}
impl FromStr for Color {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"Red" => Ok(Color::Red),
"Green" => Ok(Color::Green),
"Blue" => Ok(Color::Blue),
_ => Err(()),
}
}
}
fn main() {
let color = "Green".parse::<Color>().unwrap();
println!("{:?}", color);
}
Output example:
Green
Explanation
The FromStr trait is implemented for the str type, allowing us to convert a string into an enum. To do this, we must first define the enum and implement the FromStr trait for it. Then, we can use the str::parse method to convert a string into the enum. In the example above, we define an enum Color with three variants, and implement the FromStr trait for it. We then use the str::parse method to convert the string "Green" into the Color enum.
Helpful links
Related
More of Rust
- How to use binary regex in Rust?
- How to use regex to match a double quote in Rust?
- How to use negation in Rust regex?
- Regex example to match multiline string in Rust?
- How to use regex lookahead in Rust?
- How to ignore case in Rust regex?
- How to use regex captures in Rust?
- How to print a Rust HashMap?
- How to sort the keys in a Rust HashMap?
- Generator example in Rust
See more codes...