Skip to content

Instantly share code, notes, and snippets.

@Shaun289
Created November 4, 2021 04:22
Show Gist options
  • Save Shaun289/530bc6aac97e4b9a07d13f4c4b05c232 to your computer and use it in GitHub Desktop.
Save Shaun289/530bc6aac97e4b9a07d13f4c4b05c232 to your computer and use it in GitHub Desktop.
Rust study : match enum
/*
The rust by example ko httpshttps://hanbum.gitbooks.io/rustbyexample/content/flow_control/match/destructuring/destructure_enum.html
compiled on https://play.rust-lang.org/
result :
This color is Red
This color is Blue
This color is Green
R:255 G:255 B:255
C:128 M:128 Y:128 K:128
*/
#[allow(dead_code)]
enum Color {
Red,
Blue,
Green,
RGB(u32, u32, u32),
HSV(u32, u32, u32),
HSL(u32, u32, u32),
CMY(u32, u32, u32),
CMYK(u32, u32, u32, u32),
}
fn color_match(color: Color)
{
match color {
Color::Red => println!("This color is Red"),
Color::Blue => println!("This color is Blue"),
Color::Green => println!("This color is Green"),
Color::RGB(r,g,b) => println!("R:{} G:{} B:{}", r, g, b),
Color::HSV(h, s, v) => println!("H:{} S:{} V:{}", h, s, v),
Color::HSL(h, s, l) => println!("H:{} S:{} L:{}", h, s, l),
Color::CMY(c, m, y) => println!("C:{} M:{} Y:{}", c, m, y),
Color::CMYK(c, m, y, k) => println!("C:{} M:{} Y:{} K:{}", c, m, y, k),
}
}
fn main()
{
let color = Color::Red;
color_match(color);
let color = Color::Blue;
color_match(color);
let color = Color::Green;
color_match(color);
let color = Color::RGB(255, 255, 255);
color_match(color);
let color = Color::CMYK(128, 128, 128, 128);
color_match(color);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment