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 get_ascii() -> &'static [&'static str; 20] {
16    &[
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        "      -yMMMo{0}::::::::::::::::{1}/MMMy-",
35        "        `/s{0}::::::::::::::::::{1}o/`",
36        "            {0}``.---::::---..`"
37    ]
38}
39
40fn main() -> () {
41    let colors: Vec<AnyColor> = vec![
42        AnsiColor::BrightCyan.into(),
43        AnsiColor::BrightBlue.into(),
44        AnsiColor::BrightMagenta.into()
45    ];
46
47    let info: InfoConfig = InfoConfig::new(vec![
48        "Hello World!".to_string(),
49        "This is Inkline (Ascii).".to_string(),
50        "Made with ❤️ in Rust.".to_string(),
51        "Developer: CELESTIFYX Team".to_string()
52    ]).with_position(InfoPosition::Right).with_margin(4).with_l_margin(1);
53
54    let ascii: String = get_ascii().join("\n");
55    let mut art: AsciiArt = AsciiArt::new(Some(ascii), Some(colors), true, Some(info));
56
57    println!("{}", (&mut art).render());
58}