Rust: Enum
値を持つEnum
RustのEnumは、列挙子にデータを格納することができる
code:rust
enum Color {
RGB(f32, f32, f32),
HSV(f32, f32, f32),
Hex(String),
}
impl ToString for Color {
fn to_string(&self) -> String {
match self {
Color::RGB(r, g, b) => format!("RGB({}, {}, {})", r, g, b),
Color::HSV(h, s, v) => format!("HSV({}, {}, {})", h, s, v),
Color::Hex(hex) => format!("Hex({})", hex),
}
}
}
fn main() {
println!("{}", Color::RGB(1.0, 0.5, 0.0).to_string());
println!("{}", Color::HSV(0.083, 1.0, 1.0).to_string());
println!("{}", Color::Hex("#ff7f00".to_string()).to_string());
if let Color::Hex(hex) = Color::Hex("#ffffff".to_string()) {
println!("Hex color: {}", hex);
}
}