banner/
banner.rs

1use owo_colors::{DynColors, OwoColorize};
2
3const OWO: &str = r#"
4                                     ██████╗ ██╗    ██╗ ██████╗ 
5                                    ██╔═══██╗██║    ██║██╔═══██╗
6                                    ██║   ██║██║ █╗ ██║██║   ██║
7                                    ██║   ██║██║███╗██║██║   ██║
8                                    ╚██████╔╝╚███╔███╔╝╚██████╔╝
9                                     ╚═════╝  ╚══╝╚══╝  ╚═════╝
10                                                                      
11"#;
12
13const COLORS: &str = r#"
14                          .o88b. | .d88b.  |db      | .d88b.  |d8888b. |.d8888. 
15                         d8P  Y8 |.8P  Y8. |88      |.8P  Y8. |88  `8D |88'  YP 
16                         8P      |88    88 |88      |88    88 |88oobY' |`8bo.   
17                         8b      |88    88 |88      |88    88 |88`8b   |  `Y8b. 
18                         Y8b  d8 |`8b  d8' |88booo. |`8b  d8' |88 `88. |db   8D 
19                          `Y88P' | `Y88P'  |Y88888P | `Y88P'  |88   YD |`8888Y' "#;
20
21fn main() {
22    let colors: [DynColors; 6] = [
23        "#B80A41", "#4E4BA8", "#6EB122", "#DAAC06", "#00938A", "#E23838",
24    ]
25    .map(|color| color.parse().unwrap());
26
27    println!("\n\n\n\n\n{}", OWO.fg_rgb::<0x2E, 0x31, 0x92>().bold());
28
29    for line in COLORS.split_inclusive('\n') {
30        for (text, color) in line.split('|').zip(colors.iter().copied()) {
31            print!("{}", text.color(color).bold());
32        }
33    }
34
35    println!("\n\n\n\n\n\n");
36}