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 replace strings using Rust regex?
- How to replace a capture group using Rust regex?
- How to calculate the inverse of a matrix in Rust?
- Regex example to match multiline string in Rust?
- How to replace all matches using Rust regex?
- How to ignore case in Rust regex?
- How to parse a file with Rust regex?
- How to get an element from a HashSet in Rust?
- How to create pointer in Rust
- How to match whitespace with a regex in Rust?
See more codes...