1pub use kinds::PrimaryColor;
6pub use kinds::SecondaryColor;
7pub use utils::mix;
8
9pub mod kinds {
10 pub enum PrimaryColor {
12 Red,
13 Yellow,
14 Blue,
15 }
16
17 pub enum SecondaryColor {
19 Orange,
20 Green,
21 Purple,
22 }
23}
24
25pub mod utils {
26 use crate::kinds::*;
27
28 pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
30 match (c1, c2) {
31 (PrimaryColor::Red, PrimaryColor::Yellow) => SecondaryColor::Orange,
32 (PrimaryColor::Red, PrimaryColor::Blue) => SecondaryColor::Purple,
33 (PrimaryColor::Yellow, PrimaryColor::Blue) => SecondaryColor::Green,
34 _ => panic!("Invalid color combination!"),
35 }
36 }
37}