{"version": 2, "width": 86, "height": 22, "timestamp": 1696777227, "env": {"SHELL": "/usr/bin/zsh", "TERM": "xterm-256color"}}
[0.032862, "o", "\u001b[0m\u001b[49m\u001b[39m\u001b[27m\u001b[24m\r\u001b[K\r\n\r\n\u001b[2A\u001b7\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[44m\u001b[38;5;254m \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/dev/ununhexium/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mcprintf\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[49m\u001b[34m\u001b[0m\u001b[34m\u001b[49m\u001b[39m\u001b[38;5;238m─────────────────────────────────────────────────\u001b[0m\u001b[38;5;238m\u001b[49m\u001b[37m\u001b[0m\u001b[37m\u001b[47m\u001b[30m 17:00:27\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[?2004h"]
[0.671539, "o", "."]
[0.761487, "o", "/"]
[0.882535, "o", "d"]
[0.962626, "o", "e"]
[1.787704, "o", "\u001b[?25l"]
[1.788083, "o", "\u001b8\u001b[0m\u001b[49m\u001b[39m\u001b[27m\u001b[24m\u001b[J"]
[1.789492, "o", "\u001b]2;uuh@thought:~/dev/ununhexium/cprintf\u0007\u001b]1;..nhexium/cprintf\u0007"]
[1.78966, "o", "\u001b[0m\u001b[38;5;254m\u001b[49m\u001b[39m\u001b[27m\u001b[24m\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m                                                                                     \r\u001b[0m\u001b[49m\u001b[39m\u001b[27m\u001b[24m\u001b[K"]
[1.791391, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\r\n\u001b[A\u001b[0m\u001b[44m\u001b[38;5;254m \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/dev/ununhexium/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mcprintf\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m \u001b[30mmaster \u001b[30m⇡2 \u001b[30m+4 \u001b[30m!2 \u001b[30m?5\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;238m────────────────────────\u001b[0m\u001b[38;5;238m\u001b[49m\u001b[90m\u001b[0m\u001b[90m\u001b[100m\u001b[30m 4\u001b[0m\u001b[30m\u001b[100m\u001b[100m\u001b[30m ☑\u001b[0m\u001b[30m\u001b[100m\u001b[100m\u001b[30m \u001b[0m\u001b[30m\u001b[100m\u001b[100m\u001b[30m\u001b[37m\u001b[0m\u001b[37m\u001b[100m\u001b[47m\u001b[30m 17:00:27\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K"]
[1.791775, "o", "\u001b[?1h\u001b="]
[1.792141, "o", "\u001b[?25h"]
[1.792255, "o", "\u001b[?2004h"]
[1.793282, "o", "."]
[1.793807, "o", "\b./"]
[1.79441, "o", "d"]
[1.797807, "o", "\b\b\b\u001b[4m.\u001b[4m/\u001b[4md\u001b[4me\u001b[24m"]
[1.814355, "o", "\u001b[90mmo.sh quality_of_life\u001b[39m\u001b[21D"]
[2.279369, "o", "\b\b\b\b\u001b[24m\u001b[32m.\u001b[24m\u001b[32m/\u001b[24m\u001b[32md\u001b[24m\u001b[32me\u001b[32mm\u001b[32mo\u001b[32m.\u001b[32ms\u001b[32mh\u001b[39m\u001b[39m \u001b[39mq\u001b[39mu\u001b[39ma\u001b[39ml\u001b[39mi\u001b[39mt\u001b[39my\u001b[39m_\u001b[39mo\u001b[39mf\u001b[39m_\u001b[39ml\u001b[39mi\u001b[39mf\u001b[39me"]
[2.665228, "o", "\u001b[?1l\u001b>"]
[2.667137, "o", "\u001b[?2004l\r\r\n"]
[2.667646, "o", "\u001b]2;./demo.sh quality_of_life\u0007\u001b]1;./demo.sh\u0007"]
[2.712813, "o", "\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `std::num::ParseIntError`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/parser.rs:1:5\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::num::ParseIntError;\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `Text`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/parser.rs:7:48\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m7\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse crate::model::{Color, Colors, Part, Style, Text};\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                                               \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `vecs`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/helpers.rs:6:16"]
[2.71289, "o", "\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mpub(crate) use vecs;\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused doc comment\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/cprintf.rs:18:13\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m18\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m/\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   /// TODO Special cases handling for more user friendliness\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m19\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   ///\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m20\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   /// cprintf\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m21\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   /// Is valid and outputs nothing\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b["]
[2.712922, "o", "0m  \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m31\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   ///\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m32\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   /// The other cases require at least 2 arguments\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|______________________________________________________^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m33\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m34\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m/\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   if inputs.len() < 2 && (has_specifiers || inputs[0].is_empty()) {\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m35\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m       Err(\"The minimum number of arguments is 2. The first argument is the format. If no formatti\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m36\u001b[0m\u001b["]
[2.71295, "o", "0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   } else if inputs[0].is_empty() {\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m37\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m       let mut result = inputs[1].to_string();\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m41\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m       spec_to_ansi(&inputs, specs)\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m42\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   }\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|_______-\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mrustdoc does not generate documentation for expressions\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mhelp\u001b[0m\u001b[0m: use `//` for a plain comment\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[w"]
[2.712975, "o", "arn(unused_doc_comments)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `it`\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/parser.rs:200:98\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m200\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m            text.as_str().trim().parse::<usize>().and_then(|it| Ok(Indexed(it))).unwrap_or_else(|it|\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                                                                                                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_it`\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unreachable pattern\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/parser.rs:262:17\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m262\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m     "]
[2.712996, "o", "           _ => todo!(\"Don't know how to interpret the color '{}'\", s.as_str())\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                \u001b[0m\u001b[0m\u001b[1m\u001b[33m^\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unreachable_patterns)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `text`\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/cprintf.rs:14:37\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m                    Specification { text, color, style } => true,\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                                    \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: try ignoring the field: `text: _`\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `color`\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/cprintf.rs:14:43\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m      "]
[2.713025, "o", "              Specification { text, color, style } => true,\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                                          \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: try ignoring the field: `color: _`\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `style`\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/cprintf.rs:14:50\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m                    Specification { text, color, style } => true,\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                                                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: try ignoring the field: `style: _`\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: associated functions `literal`, `positional_color`, `positional_background_color`, `positional_style`, `indexed`, and `indexed_color` are never used\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/model.rs:17:12\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b["]
[2.71305, "o", "1m\u001b[38;5;12m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mimpl Part {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m---------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12massociated functions in this implementation\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub fn literal(text: &str) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m           \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m23\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub fn positional_color(color: Color) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m           \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m26\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub fn positional_background_color(color: Color) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m           \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    p"]
[2.713069, "o", "ub fn positional_style(style: Style) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m           \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m32\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub const fn indexed(index: usize) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m35\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub const fn indexed_color(index: usize, color: Colors) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: associated functions `new`, `new_fg`, and `new_bg` are never used\u001b[0m\r\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/model.rs:56:18\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m52\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[3"]
[2.713243, "o", "8;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mimpl Colors {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m-----------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12massociated functions in this implementation\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m56\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub const fn new(foreground: Color, background: Color) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m59\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub const fn new_fg(foreground: Color) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m62\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub const fn new_bg(background: Color) -> Self {\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m                 \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: associated function `rgb` is never used\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5"]
[2.713287, "o", ";12m--> \u001b[0m\u001b[0msrc/model.rs:114:12\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m87\u001b[0m\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mimpl Color {\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12massociated function in this implementation\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m114\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub fn rgb(red: u8, green: u8, blue: u8) -> Self { RGB { red, green, blue } }\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m           \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variant `Reset` is never constructed\u001b[0m\r\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/model.rs:167:5\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m166\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mpub enum Style {\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m         \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m-----\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mvariant in this enum\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m167\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;"]
[2.713318, "o", "12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    Reset = 0,\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `Style` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis\u001b[0m\r\n\r\n\u001b[0m\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m:\u001b[0m `cprintf` (lib) generated 13 warnings (run `cargo fix --lib -p cprintf` to apply 7 suggestions)\r\n\u001b[0m\u001b[0m\u001b[1m\u001b[32m    Finished\u001b[0m release [optimized] target(s) in 0.01s\r\n"]
[2.715496, "o", "\u001b[2J\r\n"]
[2.715949, "o", "Quality of life\r\n\r\n\r\n\r\nReference arguments by their index\r\n"]
[2.715971, "o", "\r\n"]
[2.716051, "o", "+ ./cprintf '{index=2} {%1}' 1 2\r\n"]
[2.717745, "o", "2 1"]
[2.718044, "o", "\r\n\r\n\r\n\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[11.66337, "o", "\u001b[2J\r\n\r\nThe specifiers' order can be mixed\r\n"]
[11.663463, "o", "\r\n+ ./cprintf '{%1#red} {#blue%2}' 1 2\r\n"]
[11.666797, "o", "\u001b[31m1\u001b[0m \u001b[34m2\u001b[0m"]
[11.667151, "o", "\r\n\r\n\r\n"]
[11.667202, "o", "\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[20.763244, "o", "\u001b[2J\r\n\r\nLong and short notation may be mixed\r\n"]
[20.763427, "o", "\r\n+ ./cprintf '{%1 color=red} {index=2 #b}' red blue\r\n"]
[20.766805, "o", "\u001b[31mred\u001b[0m \u001b[34mblue\u001b[0m"]
[20.767205, "o", "\r\n\r\n\r\n\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[27.142703, "o", "\u001b[2J\r\n\r\n"]
[27.14285, "o", "Special cases\r\n\r\nDon't fail when empty\r\n\r\n"]
[27.142911, "o", "+ ./cprintf '' ''\r\n"]
[27.144614, "o", "\r\n\r\n\r\n"]
[27.144641, "o", "\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[31.023642, "o", "\u001b[2J\r\n\r\n"]
[31.023888, "o", "Don't require arguments when there is no specifier\r\n\r\n+ ./cprintf 'No specification'\r\n"]
[31.0254, "o", "No specification"]
[31.025653, "o", "\r\n\r\n\r\n"]
[31.025712, "o", "\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[37.493689, "o", "\u001b[2J\r\n\r\n"]
[37.493756, "o", "Just concat when there are multiple arguments\r\n\r\n"]
[37.493964, "o", "+ ./cprintf '' 'One, ' 'two, ' three\r\n"]
[37.496776, "o", "One, two, three"]
[37.49743, "o", "\r\n\r\n\r\n\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[45.633685, "o", "\u001b[2J\r\n\r\n"]
[45.633741, "o", "Leave space around the spec to make it more readable\r\n\r\n"]
[45.634058, "o", "+ ./cprintf '>{#Y/r!underline%1}<' Dense\r\n"]
[45.637951, "o", ">\u001b[4;93m\u001b[41mDense\u001b[0m<"]
[45.638495, "o", "\r\n\r\n"]
[45.638541, "o", "+ ./cprintf '>{ color=YELLOW/red !underline index=1 }<' 'Spaced out'\r\n"]
[45.641472, "o", ">\u001b[4;93m\u001b[41mSpaced out\u001b[0m<"]
[45.642287, "o", "\r\n\r\n\r\n"]
[45.642322, "o", "\u001b[2mPress the ANY key to continue ;P\u001b[0m\r\n"]
[58.943321, "o", "\u001b[2J\r\n\r\n"]
[58.944939, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m                                                                                     \r \r"]
[58.945297, "o", "\u001b]2;uuh@thought:~/dev/ununhexium/cprintf\u0007\u001b]1;..nhexium/cprintf\u0007"]
[58.995386, "o", "\u001b[0m\u001b[49m\u001b[39m\u001b[K\r\n"]
[58.996864, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\r\n\u001b[A\u001b[0m\u001b[44m\u001b[38;5;254m \u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m/dev/ununhexium/\u001b[1m\u001b[38;5;254m\u001b[44m\u001b[38;5;255mcprintf\u001b[0m\u001b[38;5;255m\u001b[44m\u001b[44m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[44m\u001b[44m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[44m\u001b[43m\u001b[34m\u001b[0m\u001b[34m\u001b[43m\u001b[43m\u001b[30m \u001b[30mmaster \u001b[30m⇡2 \u001b[30m+4 \u001b[30m!2 \u001b[30m?5\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m\u001b[38;5;238m───────────────────\u001b[0m\u001b[38;5;238m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[43m\u001b[30m 56s\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m\u001b[90m\u001b[0m\u001b[90m\u001b[43m\u001b[100m\u001b[30m 4\u001b[0m\u001b[30m\u001b[100m\u001b[100m\u001b[30m ☑\u001b[0m\u001b[30m\u001b[100m\u001b[100m\u001b[30m \u001b[0m\u001b[30m\u001b[100m\u001b[100m\u001b[30m\u001b[37m\u001b[0m\u001b[37m\u001b[100m\u001b[47m\u001b[30m 17:01:26\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m\u001b[0m\u001b[30m\u001b[47m\u001b[47m\u001b[30m \u001b[0m\u001b[30m\u001b[47m\u001b[49m\u001b[39m\r\n\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[38;5;76m❯\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[38;5;76m\u001b[0m\u001b[38;5;76m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K"]
[58.99696, "o", "\u001b[?1h\u001b="]
[58.99772, "o", "\u001b[?2004h"]
[60.374291, "o", "\u001b[?2004l\r\r\n"]
