From 1cebd86e5427ab6ee8e8849d399810906bcd3f66 Mon Sep 17 00:00:00 2001 From: qtfkwk Date: Fri, 27 Feb 2026 10:08:01 -0500 Subject: [PATCH] add ascii-chart character table --- src/colors.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 4 ++++ 2 files changed, 52 insertions(+) diff --git a/src/colors.rs b/src/colors.rs index 0d7a7bec..f9612d2b 100644 --- a/src/colors.rs +++ b/src/colors.rs @@ -182,3 +182,51 @@ pub const CP1047: [char; 256] = [ '.','.','S','T','U','V','W','X','Y','Z','.','.','.','.','.','.', '0','1','2','3','4','5','6','7','8','9','.','.','.','.','.','.' ]; + +#[rustfmt::skip] +pub const ASCII_CHART: [char; 256] = [ + // Mixes characters from: + // + // - Unicode Control Picture Block + // - Unicode Miscellaneous Technical Block + // - Unicode Supplemental Punctuation Block + // - ISO/IEC 8859-1 + // - Windows-1252 + // - Braille + // + // | Offset | Replacement | Description | + // |--------|-------------|----------------------------------------| + // | 00-20 | 2400-2420 | Unicode Control Pictures Block | + // | 21-7E | 21-7E | ISO/IEC 8859-1 | + // | 7F | 2421 | Unicode Control Pictures Block | + // | 80 | 80 | Windows-1252 | + // | 81 | 81 | Braille | + // | 82-8C | 82-8C | Windows-1252 | + // | 8D | 8D | Braille | + // | 8E | 8E | Windows-1252 | + // | 8F-90 | 8F-90 | Braille | + // | 91-9C | 91-9C | Windows-1252 | + // | 9D | 9D | Braille | + // | 9E-9F | 9E-9F | Windows-1252 | + // | A0 | 237D | Unicode Miscellaneous Technical Block | + // | A1-AC | A1-AC | ISO/IEC 8859-1 | + // | AD | 2E1A | Unicode Supplemental Punctuation Block | + // | AE-FF | AE-FF | ISO/IEC 8859-1 | + // + '␀','␁','␂','␃','␄','␅','␆','␇','␈','␉','␊','␋','␌','␍','␎','␏', // 0 + '␐','␑','␒','␓','␔','␕','␖','␗','␘','␙','␚','␛','␜','␝','␞','␟', // 1 + '␠','!','"','#','$','%','&','\'','(',')','*','+',',','-','.','/', // 2 + '0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?', // 3 + '@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', // 4 + 'P','Q','R','S','T','U','V','W','X','Y','Z','[','\\',']','^','_', // 5 + '`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', // 6 + 'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','␡', // 7 + '€','⢁','‚','ƒ','„','…','†','‡','ˆ','‰','Š','‹','Œ','⢓','Ž','⢛', // 8 + '⢄','‘','’','“','”','•','–','—','˜','™','š','›','œ','⢗','ž','Ÿ', // 9 + '⍽','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','⸚','®','¯', // A + '°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿', // B + 'À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï', // C + 'Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß', // D + 'à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï', // E + 'ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ', // F +]; diff --git a/src/lib.rs b/src/lib.rs index 48fbc5bd..f42d08ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -53,6 +53,9 @@ pub enum CharacterTable { /// Uses braille characters for non-printable bytes. Braille, + + /// ASCII Chart + AsciiChart, } #[derive(Copy, Clone, Debug, Default, ValueEnum)] @@ -184,6 +187,7 @@ impl Byte { char::from_u32(0x2800 + to_braille_bits(self.0) as u32).unwrap() } }, + CharacterTable::AsciiChart => ASCII_CHART[self.0 as usize], } } }