enum Color { Red, Green, Blue, } impl Color { fn display(&self) { match self { Color::Red => println!("Red!"), Color::Green => println!("Green!"), Color::Blue => println!("Blue!"), } } } impl Clone for Color { fn clone(&self) -> Self { match self { Color::Red => Color::Red, Color::Green => Color::Green, Color::Blue => Color::Blue, } } } impl Copy for Color { } fn main() { let c = Color::Red; c.display(); let c1 = c; c1.display(); c.display() }