From ef468dcc6d3a824b202bf246f8636ec64055b645 Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Tue, 1 Aug 2023 14:09:36 -0700 Subject: [PATCH] better choosing of version --- src/lib.rs | 4 +++- src/main.rs | 15 +++++++++++++-- src/qr.rs | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index bae46d1..19383fe 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1,3 @@ -mod qr; +pub mod qr; + +pub use qr::Mode; diff --git a/src/main.rs b/src/main.rs index 17d8aa0..1f5ee72 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,8 @@ 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 { @@ -40,21 +42,30 @@ fn main() -> Result<(), eframe::Error> { eframe::run_native( "Show an image with eframe/egui", options, - Box::new(|_cc| Box::new(Flasher { content })), + Box::new(|_cc| { + Box::new(Flasher { + content, + mode: Mode::Ascii, + }) + }), ) } 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(fast_qr::Version::V40) + .version(version) .build() .unwrap(); let bytes = ImageBuilder::default() diff --git a/src/qr.rs b/src/qr.rs index e97a850..7b8500f 100644 --- a/src/qr.rs +++ b/src/qr.rs @@ -15,7 +15,7 @@ pub fn get_size(len: usize, mode: Mode) -> usize { } } -pub fn choose_version(size: usize, ecl: ECL) -> fast_qr::Version { +pub fn get_version(size: usize, ecl: ECL) -> fast_qr::Version { use fast_qr::Version::*; let ecl = match ecl { ECL::L => 0.7,