art_zhang/
lib.rs

1//! Art
2//!
3//! A library for modeling artistic concepts.
4
5pub use self::kinds::PrimaryColor;
6pub use self::kinds::SecondaryColor;
7pub use self::utils::mix;
8
9pub mod kinds {
10    /// The primary colors according to the RYB color model.
11    pub enum PrimaryColor {
12        Red,
13        Yellow,
14        Blue,
15    }
16
17    /// The secondary colors according to the RYB color model.
18    pub enum SecondaryColor {
19        Orange,
20        Green,
21        Purple,
22    }
23}
24
25pub mod utils {
26    use crate::kinds::*;
27    use crate::PrimaryColor::{Red, Yellow};
28    use crate::SecondaryColor::{Green, Orange};
29
30    /// Combines two primary colors in equal amounts to create
31    /// a secondary color.
32    pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
33        match (c1, c2) {
34            (Red, Yellow) => Orange,
35            _ => Green
36        }
37    }
38}