commit 72bad403d08bea1703be59a05b3ae0686c227ec5
parent b7006ae3013b8011e2fe33db97e16313b769fb50
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 30 Mar 2023 23:21:36 -0700
optimize
Diffstat:
| M | src/lechatphp/mod.rs | | | 136 | +++++++++++++++++++++++++++++++++++++++---------------------------------------- |
1 file changed, 67 insertions(+), 69 deletions(-)
diff --git a/src/lechatphp/mod.rs b/src/lechatphp/mod.rs
@@ -15,81 +15,79 @@ const LEFT_PADDING: u32 = 5; // left padding for difficulty 1 and 2
const TOP_PADDING: u32 = 7; // top padding for difficulty 1 and 2
lazy_static! {
- static ref B64_MAP: HashMap<&'static str, char> = HashMap::from([
- ("VhI8Qkbv3FIvGMeiQ1fPSzSXiSAIFADs=", '0'),
- ("UhI8QkcvnHlpJSXgNbdnO2FViVQAAOw==", '1'),
- ("UhI+hcWruGkMgSmrfvGnrtVDiKBYAOw==", '2'),
- ("UhH+hatyBEkTuzVjpldWtHIUiUgAAOw==", '3'),
- ("VhI8XkcvqIFiGTmbvdRFl2TzJSCYFADs=", '4'),
- ("WhG+hG6CYGnwrygedRIw3jGlhRpZGAQA7", '5'),
- ("XhI+hcWruGoiJrRcha5fPTS0bQpamUQAAOw==", '6'),
- ("ThG+hq5jhQEPz1OeuhJT3CIZiAQA7", '7'),
- ("XhI+hcWruGosRLPYwxLnaqXEXQpYmUgAAOw==", '8'),
- ("VhI+hcWru2kosTjAjxduydyHiSBoFADs=", '9'),
- ("VhI8Qkbv3FIvGMeiQ3RlT+X3JSBoFADs=", 'A'),
- ("VhG+hm3EK4GMtLimtntlmeHXISJYFADs=", 'B'),
- ("VhI+hatyLAIwuhSgv1edWt1TYSAIFADs=", 'C'),
- ("WhG+hm3EK4GNTNhvpdZXnvHjISJZAAQA7", 'D'),
- ("UhG+hG6CYGnyTSYrw0RE6K3niaBQAOw==", 'E'),
- ("ThG+hy5jhgIpsSugs0oe/CIZiAQA7", 'F'),
- ("VhI+hatyLXgQuhbMqhfhWl13TSB4FADs=", 'G'),
- ("UhG8RqMr93Gm0xjVhlkl3BIaiUQAAOw==", 'H'),
- ("UhH+hi4rmXmzhgZmq1JQuboUiUAAAOw==", 'I'),
- ("UhI8QG6mdlpMRInqhpRI/64TiUQAAOw==", 'J'),
- ("XhG8RqHruQIQrNXbfirLO2oUaQpamUQAAOw==", 'K'),
- ("UhG8RmMvKAHwOTVvP1bmpH4UiUgAAOw==", 'L'),
- ("WhG8RqJ0NI1DTUVgrPZg7vz3ISJZGAQA7", 'M'),
- ("WhG8RqH3tAFTJUSgXzpvTGlXISJZGAQA7", 'N'),
- ("VhI+hcWru2kpTxlfxBZBx/23ISJYFADs=", 'O'),
- ("ThG+hG6DI4JJsPuQavhJnD4ZiAQA7", 'P'),
- ("WhI+hcWru2kpTxjdhXSxeDjDISJZAAQA7", 'Q'),
- ("WhG+hG6DI4JJs1vNc07jlNHXISJZGAQA7", 'R'),
- ("UhH+hC4obkHGywVjpw1tbC1XiiBQAOw==", 'S'),
- ("UhG+hq9cIHpIuwGghTXn2eoXiVQAAOw==", 'T'),
- ("UhG8RqMr93GlrQivT1UBmioTiiBQAOw==", 'U'),
- ("VhG8RqMr9gJOLpjon1bsefiHiSIoFADs=", 'V'),
- ("UhG8RqMr93GnLUWBhplzyh4TiaBQAOw==", 'W'),
- ("UhG8RqMrrQJQNUXvfjG5S72GiWAAAOw==", 'X'),
- ("UhG8RqMrrQJQNUXvtPDst/WHiiBQAOw==", 'Y'),
- ("UhG+hG5jtVIRHIlvpcwBnpnHiWAAAOw==", 'Z'),
- ("ThI+pq+FuYAyNvitnfuB2yoRKAQA7", 'a'),
- ("WhG8RmMvKAFSONukaPDRji4VgRJZHAQA7", 'b'),
- ("RhI+pq+FuYHwt1CWBfJn5VAAAOw==", 'c'),
- ("VhI8YkbD93JtMrmoutpvmeEnNSB4FADs=", 'd'),
- ("RhI+pq+FxnJEyvntXBRWzzxQAOw==", 'e'),
- ("VhI8QG7f2VJNwoliZpQm7XSXiSBoFADs=", 'f'),
- ("VhI+pm+EO3nnQwBqDpXvRq03aFy4FADs=", 'g'),
- ("VhG8RmMvKAFSONukaPDTjrXlgRJYFADs=", 'h'),
- ("ThI8Qkcrd1kMrzlNTpldKCIZAAQA7", 'i'),
- ("UhI8XkbANF0uPTlTxVSw/P0kZVAAAOw==", 'j'),
- ("VhH8RaMrgWJwrQrUSRs7Sll3PSB4FADs=", 'k'),
- ("RhI+haMueAgPw1CZfjvrODxYAOw==", 'l'),
- ("ThI+piwHh4ItUWkjn1Rl3x4RKAQA7", 'm'),
- ("UhI+pixHgHnSG0hNljY1jvzHiUgAAOw==", 'n'),
- ("ThI+pq+FxnJEyPvSgBbXyy4RMAQA7", 'o'),
- ("VhI+pixHgHnSG0hNljS3vOUlXxygFADs=", 'p'),
- ("VhI+pq+HwHnTS0IBuxpLaiCXVMSIFADs=", 'q'),
- ("ShI+pixHgnInzyXTbw1uzDxoFADs=", 'r'),
- ("RhI+pm+EPHHphUanorLeyvxQAOw==", 's'),
- ("UhI95EcrIYlsTVuqueYD3qIQiUgAAOw==", 't'),
- ("ThI+pixHt3onSUOggyJvHzoRLAQA7", 'u'),
- ("ThI+pixHt3nGAVmnt1VtOz4RLAQA7", 'v'),
- ("UhI+pixHt3onPAXprzJliyzHiUgAAOw==", 'w'),
- ("ThI+pixH9nJHTPZjsBVTSyoRLAQA7", 'x'),
- ("VhI+pixHt3onSUOggyJvHXlkPxS0FADs=", 'y'),
- ("PhI+pm+GvXAuzIjkfZXwVADs=", 'z'),
+ static ref B64_MAP: HashMap<char, &'static str> = HashMap::from([
+ ('0', "VhI8Qkbv3FIvGMeiQ1fPSzSXiSAIFADs="),
+ ('1', "UhI8QkcvnHlpJSXgNbdnO2FViVQAAOw=="),
+ ('2', "UhI+hcWruGkMgSmrfvGnrtVDiKBYAOw=="),
+ ('3', "UhH+hatyBEkTuzVjpldWtHIUiUgAAOw=="),
+ ('4', "VhI8XkcvqIFiGTmbvdRFl2TzJSCYFADs="),
+ ('5', "WhG+hG6CYGnwrygedRIw3jGlhRpZGAQA7"),
+ ('6', "XhI+hcWruGoiJrRcha5fPTS0bQpamUQAAOw=="),
+ ('7', "ThG+hq5jhQEPz1OeuhJT3CIZiAQA7"),
+ ('8', "XhI+hcWruGosRLPYwxLnaqXEXQpYmUgAAOw=="),
+ ('9', "VhI+hcWru2kosTjAjxduydyHiSBoFADs="),
+ ('A', "VhI8Qkbv3FIvGMeiQ3RlT+X3JSBoFADs="),
+ ('B', "VhG+hm3EK4GMtLimtntlmeHXISJYFADs="),
+ ('C', "VhI+hatyLAIwuhSgv1edWt1TYSAIFADs="),
+ ('D', "WhG+hm3EK4GNTNhvpdZXnvHjISJZAAQA7"),
+ ('E', "UhG+hG6CYGnyTSYrw0RE6K3niaBQAOw=="),
+ ('F', "ThG+hy5jhgIpsSugs0oe/CIZiAQA7"),
+ ('G', "VhI+hatyLXgQuhbMqhfhWl13TSB4FADs="),
+ ('H', "UhG8RqMr93Gm0xjVhlkl3BIaiUQAAOw=="),
+ ('I', "UhH+hi4rmXmzhgZmq1JQuboUiUAAAOw=="),
+ ('J', "UhI8QG6mdlpMRInqhpRI/64TiUQAAOw=="),
+ ('K', "XhG8RqHruQIQrNXbfirLO2oUaQpamUQAAOw=="),
+ ('L', "UhG8RmMvKAHwOTVvP1bmpH4UiUgAAOw=="),
+ ('M', "WhG8RqJ0NI1DTUVgrPZg7vz3ISJZGAQA7"),
+ ('N', "WhG8RqH3tAFTJUSgXzpvTGlXISJZGAQA7"),
+ ('O', "VhI+hcWru2kpTxlfxBZBx/23ISJYFADs="),
+ ('P', "ThG+hG6DI4JJsPuQavhJnD4ZiAQA7"),
+ ('Q', "WhI+hcWru2kpTxjdhXSxeDjDISJZAAQA7"),
+ ('R', "WhG+hG6DI4JJs1vNc07jlNHXISJZGAQA7"),
+ ('S', "UhH+hC4obkHGywVjpw1tbC1XiiBQAOw=="),
+ ('T', "UhG+hq9cIHpIuwGghTXn2eoXiVQAAOw=="),
+ ('U', "UhG8RqMr93GlrQivT1UBmioTiiBQAOw=="),
+ ('V', "VhG8RqMr9gJOLpjon1bsefiHiSIoFADs="),
+ ('W', "UhG8RqMr93GnLUWBhplzyh4TiaBQAOw=="),
+ ('X', "UhG8RqMrrQJQNUXvfjG5S72GiWAAAOw=="),
+ ('Y', "UhG8RqMrrQJQNUXvtPDst/WHiiBQAOw=="),
+ ('Z', "UhG+hG5jtVIRHIlvpcwBnpnHiWAAAOw=="),
+ ('a', "ThI+pq+FuYAyNvitnfuB2yoRKAQA7"),
+ ('b', "WhG8RmMvKAFSONukaPDRji4VgRJZHAQA7"),
+ ('c', "RhI+pq+FuYHwt1CWBfJn5VAAAOw=="),
+ ('d', "VhI8YkbD93JtMrmoutpvmeEnNSB4FADs="),
+ ('e', "RhI+pq+FxnJEyvntXBRWzzxQAOw=="),
+ ('f', "VhI8QG7f2VJNwoliZpQm7XSXiSBoFADs="),
+ ('g', "VhI+pm+EO3nnQwBqDpXvRq03aFy4FADs="),
+ ('h', "VhG8RmMvKAFSONukaPDTjrXlgRJYFADs="),
+ ('i', "ThI8Qkcrd1kMrzlNTpldKCIZAAQA7"),
+ ('j', "UhI8XkbANF0uPTlTxVSw/P0kZVAAAOw=="),
+ ('k', "VhH8RaMrgWJwrQrUSRs7Sll3PSB4FADs="),
+ ('l', "RhI+haMueAgPw1CZfjvrODxYAOw=="),
+ ('m', "ThI+piwHh4ItUWkjn1Rl3x4RKAQA7"),
+ ('n', "UhI+pixHgHnSG0hNljY1jvzHiUgAAOw=="),
+ ('o', "ThI+pq+FxnJEyPvSgBbXyy4RMAQA7"),
+ ('p', "VhI+pixHgHnSG0hNljS3vOUlXxygFADs="),
+ ('q', "VhI+pq+HwHnTS0IBuxpLaiCXVMSIFADs="),
+ ('r', "ShI+pixHgnInzyXTbw1uzDxoFADs="),
+ ('s', "RhI+pm+EPHHphUanorLeyvxQAOw=="),
+ ('t', "UhI95EcrIYlsTVuqueYD3qIQiUgAAOw=="),
+ ('u', "ThI+pixHt3onSUOggyJvHzoRLAQA7"),
+ ('v', "ThI+pixHt3nGAVmnt1VtOz4RLAQA7"),
+ ('w', "UhI+pixHt3onPAXprzJliyzHiUgAAOw=="),
+ ('x', "ThI+pixH9nJHTPZjsBVTSyoRLAQA7"),
+ ('y', "VhI+pixHt3onSUOggyJvHXlkPxS0FADs="),
+ ('z', "PhI+pm+GvXAuzIjkfZXwVADs="),
]);
static ref RED_COLOR: Rgba<u8> = Rgba::from([204, 2, 4, 255]);
static ref ON_COLOR: Rgba<u8> = Rgba::from([252, 254, 252, 255]);
}
fn get_letter_img(letter: char) -> DynamicImage {
- for (k, v) in B64_MAP.iter() {
- if *v == letter {
- let img_dec = general_purpose::STANDARD.decode(format!("{}{}", B64_PREFIX, k)).unwrap();
- let img = image::load_from_memory(&img_dec).unwrap();
- return img;
- }
+ if let Some(b64_suffix) = B64_MAP.get(&letter) {
+ let img_dec = general_purpose::STANDARD.decode(format!("{}{}", B64_PREFIX, b64_suffix)).unwrap();
+ let img = image::load_from_memory(&img_dec).unwrap();
+ return img;
}
panic!("letter image not found for {}", letter);
}