From 3d8b8040abbd97e1cdff252b0bcf84e58ccbc4f5 Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Tue, 1 Aug 2023 14:37:31 -0700 Subject: [PATCH] just let fast_qr handle the mode and version --- src/lib.rs | 2 -- src/main.rs | 15 ++------------- src/qr.rs | 38 -------------------------------------- 3 files changed, 2 insertions(+), 53 deletions(-) delete mode 100644 src/qr.rs diff --git a/src/lib.rs b/src/lib.rs index 19383fe..8b13789 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1 @@ -pub mod qr; -pub use qr::Mode; diff --git a/src/main.rs b/src/main.rs index 1f5ee72..8040240 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,13 +5,12 @@ use eframe::egui; use egui_extras::RetainedImage; use fast_qr::convert::image::ImageBuilder; -use godiva::qr::*; - #[derive(Parser, Debug)] #[clap(author, version, trailing_var_arg = true)] struct Cli { #[clap(long, short, help = "File to expose")] pub file: Option, + #[clap(help = "all remaining arguments treated as a string; ignored if `-f` is given")] text: Vec, } @@ -42,30 +41,20 @@ fn main() -> Result<(), eframe::Error> { eframe::run_native( "Show an image with eframe/egui", options, - Box::new(|_cc| { - Box::new(Flasher { - content, - mode: Mode::Ascii, - }) - }), + Box::new(|_cc| Box::new(Flasher { content })), ) } struct Flasher { pub content: Vec, - pub mode: Mode, } impl eframe::App for Flasher { fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { egui::CentralPanel::default().show(ctx, |ui| { let heading_text = String::from_utf8(self.content.clone()).unwrap(); - let len = heading_text.len(); ui.heading(heading_text); - let size = get_size(len, self.mode); - let version = get_version(size, fast_qr::ECL::H); let qr = fast_qr::QRBuilder::new(self.content.clone()) - .version(version) .build() .unwrap(); let bytes = ImageBuilder::default() diff --git a/src/qr.rs b/src/qr.rs deleted file mode 100644 index 7b8500f..0000000 --- a/src/qr.rs +++ /dev/null @@ -1,38 +0,0 @@ -use fast_qr::ECL; - -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] -pub enum Mode { - Ascii, - Binary, -} - -pub fn get_size(len: usize, mode: Mode) -> usize { - if mode == Mode::Ascii { - // alphanumeric mode is only 5.5 bits per character, so 5.5 / 8 = 0.6875 - (len as f64 * 0.6875).ceil() as usize - } else { - len - } -} - -pub fn get_version(size: usize, ecl: ECL) -> fast_qr::Version { - use fast_qr::Version::*; - let ecl = match ecl { - ECL::L => 0.7, - ECL::M => 0.15, - ECL::Q => 0.25, - ECL::H => 0.30, - }; - - let size = (size as f64 / ecl) as usize; - - match size { - 0..=7 => V01, - 8..=14 => V02, - 15..=24 => V03, - 25..=78 => V04, - - // - _ => V40, - } -}