1pub mod kinds {
5 pub enum PrimaryColor {
7 Red,
8 Yellow,
9 Blue,
10 }
11
12 #[derive(Debug)]
14 pub enum SecondaryColor{
15 Orange,
16 Green,
17 Purple,
18 }
19}
20
21pub mod utils {
22 use crate::kinds::*;
23 pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor{
26 match (c1, c2) {
27 (PrimaryColor::Red, PrimaryColor::Yellow) |
28 (PrimaryColor::Yellow, PrimaryColor::Red) => SecondaryColor::Orange,
29 (PrimaryColor::Red, PrimaryColor::Blue) |
30 (PrimaryColor::Blue, PrimaryColor::Red) => SecondaryColor::Purple,
31 (PrimaryColor::Yellow, PrimaryColor::Blue) |
32 (PrimaryColor::Blue, PrimaryColor::Yellow) => SecondaryColor::Green,
33 (_, _) => SecondaryColor::Purple,
34 }
35 }
36}