keyfork-qrcode: prefer Instant over SystemTime for infallible time comparison #35

Manually merged
ryan merged 1 commits from ryan/use-instant-time-qrcode into main 2024-04-10 19:36:05 +00:00
3 changed files with 7 additions and 9 deletions
Showing only changes of commit fa125e7cbe - Show all commits

2
Cargo.lock generated
View File

@ -1818,7 +1818,7 @@ dependencies = [
[[package]]
name = "keyfork-qrcode"
version = "0.1.0"
version = "0.1.1"
dependencies = [
"image",
"keyfork-bug",

View File

@ -1,6 +1,6 @@
[package]
name = "keyfork-qrcode"
version = "0.1.0"
version = "0.1.1"
repository = "https://git.distrust.co/public/keyfork"
edition = "2021"
license = "MIT"

View File

@ -5,7 +5,7 @@ use keyfork_bug as bug;
use image::io::Reader as ImageReader;
use std::{
io::{Cursor, Write},
time::{Duration, SystemTime},
time::{Duration, Instant},
process::{Command, Stdio},
};
use v4l::{
@ -110,11 +110,10 @@ pub fn scan_camera(timeout: Duration, index: usize) -> Result<Option<String>, QR
fmt.fourcc = FourCC::new(b"MPG1");
device.set_format(&fmt)?;
let mut stream = Stream::with_buffers(&device, Type::VideoCapture, 4)?;
let start = SystemTime::now();
let start = Instant::now();
while SystemTime::now()
while Instant::now()
.duration_since(start)
.unwrap_or(Duration::from_secs(0))
< timeout
{
let (buffer, _) = stream.next()?;
@ -141,12 +140,11 @@ pub fn scan_camera(timeout: Duration, index: usize) -> Result<Option<String>, QR
fmt.fourcc = FourCC::new(b"MPG1");
device.set_format(&fmt)?;
let mut stream = Stream::with_buffers(&device, Type::VideoCapture, 4)?;
let start = SystemTime::now();
let start = Instant::now();
let mut scanner = keyfork_zbar::image_scanner::ImageScanner::new();
while SystemTime::now()
while Instant::now()
.duration_since(start)
.unwrap_or(Duration::from_secs(0))
< timeout
{
let (buffer, _) = stream.next()?;