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
- Get certain enum value in Rust
- How to print enum in Rust
- How to create enum from int in Rust
- How to serialize enum in Rust
- How to uppercase enum in Rust
- How to compare enum in Rust
- Using enum in json in Rust
- How to get all enum values in Rust
- How to get enum value in Rust
- How to use enum as hashmap key in Rust
More of Rust
- How to match whitespace with a regex in Rust?
- How to replace a capture group using Rust regex?
- How to match a URL with a regex in Rust?
- How to replace all matches using Rust regex?
- How to use non-capturing groups in Rust regex?
- How to replace strings using Rust regex?
- How to split a string with Rust regex?
- How to get a capture group using Rust regex?
- How to use regex with bytes in Rust?
- Regex example to match multiline string in Rust?
See more codes...