pub fn render_slant(text: &str) -> String {
let text = text.to_uppercase();
let mut lines = vec![String::new(); 6];
for ch in text.chars() {
let glyph = slant_char(ch);
for (i, line) in glyph.iter().enumerate() {
lines[i].push_str(line);
}
}
lines.join("\n")
}
fn slant_char(ch: char) -> [&'static str; 6] {
match ch {
'A' => [
" ___ ",
" / _ \\ ",
" / /_\\ \\ ",
"/ _ \\ \\",
"/_/ |_/\\_\\",
" ",
],
'B' => [
" ____ ", "| __ ) ", "| _ \\ ", "| |_) |", "|____/ ", " ",
],
'C' => [
" ____ ", " / ___|", "| | ", "| |___ ", " \\____|", " ",
],
'D' => [
" ____ ", "| _ \\ ", "| | | |", "| |_| |", "|____/ ", " ",
],
'E' => [
" _____ ", "| ____|", "| _| ", "| |___ ", "|_____|", " ",
],
'F' => [
" _____ ", "| ___|", "| |_ ", "| _| ", "|_| ", " ",
],
'H' => [
" _ _ ", "| | | |", "| |_| |", "| _ |", "|_| |_|", " ",
],
'I' => [" ___ ", "|_ _|", " | | ", " | | ", "|___|", " "],
'L' => [
" _ ", "| | ", "| | ", "| |___ ", "|_____|", " ",
],
'O' => [
" ___ ", " / _ \\ ", "| | | |", "| |_| |", " \\___/ ", " ",
],
'R' => [
" ____ ",
"| _ \\ ",
"| |_) |",
"| _ < ",
"|_| \\_\\",
" ",
],
'S' => [
" ____ ",
"/ ___| ",
"\\___ \\ ",
" ___) |",
"|____/ ",
" ",
],
'T' => [
" _____ ", "|_ _|", " | | ", " | | ", " |_| ", " ",
],
'U' => [
" _ _ ", "| | | |", "| | | |", "| |_| |", " \\___/ ", " ",
],
'V' => [
"__ __",
"\\ \\ / /",
" \\ \\ / / ",
" \\ V / ",
" \\_/ ",
" ",
],
'W' => [
"__ __",
"\\ \\ / /",
" \\ \\ /\\ / / ",
" \\ V V / ",
" \\_/\\_/ ",
" ",
],
' ' => [" ", " ", " ", " ", " ", " "],
_ => super::block::block_char(ch), }
}