bhcli

A TUI for chatting on LE PHP Chats (onion)
git clone https://git.dasho.dev/n0tr1v/bhcli.git
Log | Files | Refs | README

commit 72bad403d08bea1703be59a05b3ae0686c227ec5
parent b7006ae3013b8011e2fe33db97e16313b769fb50
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Thu, 30 Mar 2023 23:21:36 -0700

optimize

Diffstat:
Msrc/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); }