Skip to main content

ascii/
ascii.rs

1// SPDX-FileCopyrightText: 2023 CELESTIFYX Team
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4use inkline::{
5    AsciiArt,
6    InfoConfig,
7    InfoPosition
8};
9
10use chromakitx::{
11    AnsiColor,
12    AnyColor
13};
14
15fn main() -> () {
16    const ASCII: &str = r#" 
17{2}            .:--::////::--.` 
18{1}        `/yNMMNho{2}////////////:. 
19{1}      `+NMMMMMMMMmy{2}/////////////:` 
20{0}    `-:::{1}ohNMMMMMMMNy{2}/////////////:` 
21{0}   .::::::::{1}odMMMMMMMNy{2}/////////////- 
22{0}  -:::::::::::{1}/hMMMMMMMmo{2}////////////- 
23{0} .::::::::::::::{1}oMMMMMMMMh{2}////////////- 
24{0}`:::::::::::::{1}/dMMMMMMMMMMNo{2}///////////` 
25{0}-::::::::::::{1}sMMMMMMmMMMMMMMy{2}//////////- 
26{0}-::::::::::{1}/dMMMMMMs{0}:{1}+NMMMMMMd{2}/////////: 
27{0}-:::::::::{1}+NMMMMMm/{0}:::{1}/dMMMMMMm+{2}///////: 
28{0}-::::::::{1}sMMMMMMh{0}:::::::{1}dMMMMMMm+{2}//////- 
29{0}`:::::::{1}sMMMMMMy{0}:::::::::{1}dMMMMMMm+{2}/////` 
30{0} .:::::{1}sMMMMMMs{0}:::::::::::{1}mMMMMMMd{2}////- 
31{0}  -:::{1}sMMMMMMy{0}::::::::::::{1}/NMMMMMMh{2}//- 
32{0}   .:{1}+MMMMMMd{0}::::::::::::::{1}oMMMMMMMo{2}- 
33{1}    `yMMMMMN/{0}:::::::::::::::{1}hMMMMMh. 
34{1}      -yMMMo{0}::::::::::::::::{1}/MMMy- 
35{1}        `/s{0}::::::::::::::::::{1}o/` 
36{0}            ``.---::::---..` 
37"#;
38
39    let colors: Vec<AnyColor> = vec![
40        AnsiColor::BrightCyan.into(),
41        AnsiColor::BrightBlue.into(),
42        AnsiColor::BrightMagenta.into()
43    ];
44
45    let info: InfoConfig = InfoConfig::new(vec![
46        "Hello World!".to_string(),
47        "This is Inkline (Ascii).".to_string(),
48        "Made with ❤️ in Rust.".to_string(),
49        "Developer: CELESTIFYX Team".to_string()
50    ]).with_position(InfoPosition::Right).with_margin(4);
51
52    let mut art: AsciiArt = AsciiArt::new(Some(ASCII.to_string()), Some(colors), true, Some(info));
53    println!("{}", (&mut art).render());
54}