mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 04:12:34 +00:00
change to using once_cell for lazy init
This commit is contained in:
@@ -450,120 +450,119 @@ impl Code128Reader {
|
||||
}
|
||||
}
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
use once_cell::sync::Lazy;
|
||||
|
||||
lazy_static! {
|
||||
|
||||
pub static ref CODE_PATTERNS: [Vec<u32>; 107] = [
|
||||
vec![2, 1, 2, 2, 2, 2], // 0
|
||||
vec![2, 2, 2, 1, 2, 2],
|
||||
vec![2, 2, 2, 2, 2, 1],
|
||||
vec![1, 2, 1, 2, 2, 3],
|
||||
vec![1, 2, 1, 3, 2, 2],
|
||||
vec![1, 3, 1, 2, 2, 2], // 5
|
||||
vec![1, 2, 2, 2, 1, 3],
|
||||
vec![1, 2, 2, 3, 1, 2],
|
||||
vec![1, 3, 2, 2, 1, 2],
|
||||
vec![2, 2, 1, 2, 1, 3],
|
||||
vec![2, 2, 1, 3, 1, 2], // 10
|
||||
vec![2, 3, 1, 2, 1, 2],
|
||||
vec![1, 1, 2, 2, 3, 2],
|
||||
vec![1, 2, 2, 1, 3, 2],
|
||||
vec![1, 2, 2, 2, 3, 1],
|
||||
vec![1, 1, 3, 2, 2, 2], // 15
|
||||
vec![1, 2, 3, 1, 2, 2],
|
||||
vec![1, 2, 3, 2, 2, 1],
|
||||
vec![2, 2, 3, 2, 1, 1],
|
||||
vec![2, 2, 1, 1, 3, 2],
|
||||
vec![2, 2, 1, 2, 3, 1], // 20
|
||||
vec![2, 1, 3, 2, 1, 2],
|
||||
vec![2, 2, 3, 1, 1, 2],
|
||||
vec![3, 1, 2, 1, 3, 1],
|
||||
vec![3, 1, 1, 2, 2, 2],
|
||||
vec![3, 2, 1, 1, 2, 2], // 25
|
||||
vec![3, 2, 1, 2, 2, 1],
|
||||
vec![3, 1, 2, 2, 1, 2],
|
||||
vec![3, 2, 2, 1, 1, 2],
|
||||
vec![3, 2, 2, 2, 1, 1],
|
||||
vec![2, 1, 2, 1, 2, 3], // 30
|
||||
vec![2, 1, 2, 3, 2, 1],
|
||||
vec![2, 3, 2, 1, 2, 1],
|
||||
vec![1, 1, 1, 3, 2, 3],
|
||||
vec![1, 3, 1, 1, 2, 3],
|
||||
vec![1, 3, 1, 3, 2, 1], // 35
|
||||
vec![1, 1, 2, 3, 1, 3],
|
||||
vec![1, 3, 2, 1, 1, 3],
|
||||
vec![1, 3, 2, 3, 1, 1],
|
||||
vec![2, 1, 1, 3, 1, 3],
|
||||
vec![2, 3, 1, 1, 1, 3], // 40
|
||||
vec![2, 3, 1, 3, 1, 1],
|
||||
vec![1, 1, 2, 1, 3, 3],
|
||||
vec![1, 1, 2, 3, 3, 1],
|
||||
vec![1, 3, 2, 1, 3, 1],
|
||||
vec![1, 1, 3, 1, 2, 3], // 45
|
||||
vec![1, 1, 3, 3, 2, 1],
|
||||
vec![1, 3, 3, 1, 2, 1],
|
||||
vec![3, 1, 3, 1, 2, 1],
|
||||
vec![2, 1, 1, 3, 3, 1],
|
||||
vec![2, 3, 1, 1, 3, 1], // 50
|
||||
vec![2, 1, 3, 1, 1, 3],
|
||||
vec![2, 1, 3, 3, 1, 1],
|
||||
vec![2, 1, 3, 1, 3, 1],
|
||||
vec![3, 1, 1, 1, 2, 3],
|
||||
vec![3, 1, 1, 3, 2, 1], // 55
|
||||
vec![3, 3, 1, 1, 2, 1],
|
||||
vec![3, 1, 2, 1, 1, 3],
|
||||
vec![3, 1, 2, 3, 1, 1],
|
||||
vec![3, 3, 2, 1, 1, 1],
|
||||
vec![3, 1, 4, 1, 1, 1], // 60
|
||||
vec![2, 2, 1, 4, 1, 1],
|
||||
vec![4, 3, 1, 1, 1, 1],
|
||||
vec![1, 1, 1, 2, 2, 4],
|
||||
vec![1, 1, 1, 4, 2, 2],
|
||||
vec![1, 2, 1, 1, 2, 4], // 65
|
||||
vec![1, 2, 1, 4, 2, 1],
|
||||
vec![1, 4, 1, 1, 2, 2],
|
||||
vec![1, 4, 1, 2, 2, 1],
|
||||
vec![1, 1, 2, 2, 1, 4],
|
||||
vec![1, 1, 2, 4, 1, 2], // 70
|
||||
vec![1, 2, 2, 1, 1, 4],
|
||||
vec![1, 2, 2, 4, 1, 1],
|
||||
vec![1, 4, 2, 1, 1, 2],
|
||||
vec![1, 4, 2, 2, 1, 1],
|
||||
vec![2, 4, 1, 2, 1, 1], // 75
|
||||
vec![2, 2, 1, 1, 1, 4],
|
||||
vec![4, 1, 3, 1, 1, 1],
|
||||
vec![2, 4, 1, 1, 1, 2],
|
||||
vec![1, 3, 4, 1, 1, 1],
|
||||
vec![1, 1, 1, 2, 4, 2], // 80
|
||||
vec![1, 2, 1, 1, 4, 2],
|
||||
vec![1, 2, 1, 2, 4, 1],
|
||||
vec![1, 1, 4, 2, 1, 2],
|
||||
vec![1, 2, 4, 1, 1, 2],
|
||||
vec![1, 2, 4, 2, 1, 1], // 85
|
||||
vec![4, 1, 1, 2, 1, 2],
|
||||
vec![4, 2, 1, 1, 1, 2],
|
||||
vec![4, 2, 1, 2, 1, 1],
|
||||
vec![2, 1, 2, 1, 4, 1],
|
||||
vec![2, 1, 4, 1, 2, 1], // 90
|
||||
vec![4, 1, 2, 1, 2, 1],
|
||||
vec![1, 1, 1, 1, 4, 3],
|
||||
vec![1, 1, 1, 3, 4, 1],
|
||||
vec![1, 3, 1, 1, 4, 1],
|
||||
vec![1, 1, 4, 1, 1, 3], // 95
|
||||
vec![1, 1, 4, 3, 1, 1],
|
||||
vec![4, 1, 1, 1, 1, 3],
|
||||
vec![4, 1, 1, 3, 1, 1],
|
||||
vec![1, 1, 3, 1, 4, 1],
|
||||
vec![1, 1, 4, 1, 3, 1], // 100
|
||||
vec![3, 1, 1, 1, 4, 1],
|
||||
vec![4, 1, 1, 1, 3, 1],
|
||||
vec![2, 1, 1, 4, 1, 2],
|
||||
vec![2, 1, 1, 2, 1, 4],
|
||||
vec![2, 1, 1, 2, 3, 2], // 105
|
||||
vec![2, 3, 3, 1, 1, 1, 2],
|
||||
];
|
||||
}
|
||||
pub static CODE_PATTERNS: Lazy<[Vec<u32>; 107]> = Lazy::new(|| {
|
||||
[
|
||||
vec![2, 1, 2, 2, 2, 2], // 0
|
||||
vec![2, 2, 2, 1, 2, 2],
|
||||
vec![2, 2, 2, 2, 2, 1],
|
||||
vec![1, 2, 1, 2, 2, 3],
|
||||
vec![1, 2, 1, 3, 2, 2],
|
||||
vec![1, 3, 1, 2, 2, 2], // 5
|
||||
vec![1, 2, 2, 2, 1, 3],
|
||||
vec![1, 2, 2, 3, 1, 2],
|
||||
vec![1, 3, 2, 2, 1, 2],
|
||||
vec![2, 2, 1, 2, 1, 3],
|
||||
vec![2, 2, 1, 3, 1, 2], // 10
|
||||
vec![2, 3, 1, 2, 1, 2],
|
||||
vec![1, 1, 2, 2, 3, 2],
|
||||
vec![1, 2, 2, 1, 3, 2],
|
||||
vec![1, 2, 2, 2, 3, 1],
|
||||
vec![1, 1, 3, 2, 2, 2], // 15
|
||||
vec![1, 2, 3, 1, 2, 2],
|
||||
vec![1, 2, 3, 2, 2, 1],
|
||||
vec![2, 2, 3, 2, 1, 1],
|
||||
vec![2, 2, 1, 1, 3, 2],
|
||||
vec![2, 2, 1, 2, 3, 1], // 20
|
||||
vec![2, 1, 3, 2, 1, 2],
|
||||
vec![2, 2, 3, 1, 1, 2],
|
||||
vec![3, 1, 2, 1, 3, 1],
|
||||
vec![3, 1, 1, 2, 2, 2],
|
||||
vec![3, 2, 1, 1, 2, 2], // 25
|
||||
vec![3, 2, 1, 2, 2, 1],
|
||||
vec![3, 1, 2, 2, 1, 2],
|
||||
vec![3, 2, 2, 1, 1, 2],
|
||||
vec![3, 2, 2, 2, 1, 1],
|
||||
vec![2, 1, 2, 1, 2, 3], // 30
|
||||
vec![2, 1, 2, 3, 2, 1],
|
||||
vec![2, 3, 2, 1, 2, 1],
|
||||
vec![1, 1, 1, 3, 2, 3],
|
||||
vec![1, 3, 1, 1, 2, 3],
|
||||
vec![1, 3, 1, 3, 2, 1], // 35
|
||||
vec![1, 1, 2, 3, 1, 3],
|
||||
vec![1, 3, 2, 1, 1, 3],
|
||||
vec![1, 3, 2, 3, 1, 1],
|
||||
vec![2, 1, 1, 3, 1, 3],
|
||||
vec![2, 3, 1, 1, 1, 3], // 40
|
||||
vec![2, 3, 1, 3, 1, 1],
|
||||
vec![1, 1, 2, 1, 3, 3],
|
||||
vec![1, 1, 2, 3, 3, 1],
|
||||
vec![1, 3, 2, 1, 3, 1],
|
||||
vec![1, 1, 3, 1, 2, 3], // 45
|
||||
vec![1, 1, 3, 3, 2, 1],
|
||||
vec![1, 3, 3, 1, 2, 1],
|
||||
vec![3, 1, 3, 1, 2, 1],
|
||||
vec![2, 1, 1, 3, 3, 1],
|
||||
vec![2, 3, 1, 1, 3, 1], // 50
|
||||
vec![2, 1, 3, 1, 1, 3],
|
||||
vec![2, 1, 3, 3, 1, 1],
|
||||
vec![2, 1, 3, 1, 3, 1],
|
||||
vec![3, 1, 1, 1, 2, 3],
|
||||
vec![3, 1, 1, 3, 2, 1], // 55
|
||||
vec![3, 3, 1, 1, 2, 1],
|
||||
vec![3, 1, 2, 1, 1, 3],
|
||||
vec![3, 1, 2, 3, 1, 1],
|
||||
vec![3, 3, 2, 1, 1, 1],
|
||||
vec![3, 1, 4, 1, 1, 1], // 60
|
||||
vec![2, 2, 1, 4, 1, 1],
|
||||
vec![4, 3, 1, 1, 1, 1],
|
||||
vec![1, 1, 1, 2, 2, 4],
|
||||
vec![1, 1, 1, 4, 2, 2],
|
||||
vec![1, 2, 1, 1, 2, 4], // 65
|
||||
vec![1, 2, 1, 4, 2, 1],
|
||||
vec![1, 4, 1, 1, 2, 2],
|
||||
vec![1, 4, 1, 2, 2, 1],
|
||||
vec![1, 1, 2, 2, 1, 4],
|
||||
vec![1, 1, 2, 4, 1, 2], // 70
|
||||
vec![1, 2, 2, 1, 1, 4],
|
||||
vec![1, 2, 2, 4, 1, 1],
|
||||
vec![1, 4, 2, 1, 1, 2],
|
||||
vec![1, 4, 2, 2, 1, 1],
|
||||
vec![2, 4, 1, 2, 1, 1], // 75
|
||||
vec![2, 2, 1, 1, 1, 4],
|
||||
vec![4, 1, 3, 1, 1, 1],
|
||||
vec![2, 4, 1, 1, 1, 2],
|
||||
vec![1, 3, 4, 1, 1, 1],
|
||||
vec![1, 1, 1, 2, 4, 2], // 80
|
||||
vec![1, 2, 1, 1, 4, 2],
|
||||
vec![1, 2, 1, 2, 4, 1],
|
||||
vec![1, 1, 4, 2, 1, 2],
|
||||
vec![1, 2, 4, 1, 1, 2],
|
||||
vec![1, 2, 4, 2, 1, 1], // 85
|
||||
vec![4, 1, 1, 2, 1, 2],
|
||||
vec![4, 2, 1, 1, 1, 2],
|
||||
vec![4, 2, 1, 2, 1, 1],
|
||||
vec![2, 1, 2, 1, 4, 1],
|
||||
vec![2, 1, 4, 1, 2, 1], // 90
|
||||
vec![4, 1, 2, 1, 2, 1],
|
||||
vec![1, 1, 1, 1, 4, 3],
|
||||
vec![1, 1, 1, 3, 4, 1],
|
||||
vec![1, 3, 1, 1, 4, 1],
|
||||
vec![1, 1, 4, 1, 1, 3], // 95
|
||||
vec![1, 1, 4, 3, 1, 1],
|
||||
vec![4, 1, 1, 1, 1, 3],
|
||||
vec![4, 1, 1, 3, 1, 1],
|
||||
vec![1, 1, 3, 1, 4, 1],
|
||||
vec![1, 1, 4, 1, 3, 1], // 100
|
||||
vec![3, 1, 1, 1, 4, 1],
|
||||
vec![4, 1, 1, 1, 3, 1],
|
||||
vec![2, 1, 1, 4, 1, 2],
|
||||
vec![2, 1, 1, 2, 1, 4],
|
||||
vec![2, 1, 1, 2, 3, 2], // 105
|
||||
vec![2, 3, 3, 1, 1, 1, 2],
|
||||
]
|
||||
});
|
||||
|
||||
const MAX_AVG_VARIANCE: f32 = 0.25;
|
||||
const MAX_INDIVIDUAL_VARIANCE: f32 = 0.7;
|
||||
|
||||
@@ -34,7 +34,7 @@ const LF: &str = "10000110010";
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
use once_cell::sync::Lazy;
|
||||
|
||||
use crate::{
|
||||
common::{BitMatrix, BitMatrixTestCase},
|
||||
@@ -43,9 +43,8 @@ use crate::{
|
||||
};
|
||||
|
||||
use super::Code128Writer;
|
||||
lazy_static! {
|
||||
static ref WRITER: Code128Writer = Code128Writer::default();
|
||||
}
|
||||
|
||||
static WRITER: Lazy<Code128Writer> = Lazy::new(|| Code128Writer::default());
|
||||
|
||||
#[test]
|
||||
fn testEncodeWithFunc3() {
|
||||
|
||||
@@ -20,12 +20,10 @@ use crate::{
|
||||
common::BitMatrix, BarcodeFormat, EncodeHintType, EncodeHintValue, Exceptions, Writer,
|
||||
};
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
use once_cell::sync::Lazy;
|
||||
use regex::Regex;
|
||||
|
||||
lazy_static! {
|
||||
pub static ref NUMERIC: Regex = Regex::new("[0-9]+").unwrap();
|
||||
}
|
||||
pub static NUMERIC: Lazy<Regex> = Lazy::new(|| Regex::new("[0-9]+").unwrap());
|
||||
|
||||
/**
|
||||
* <p>Encapsulates functionality and implementation that is common to one-dimensional barcodes.</p>
|
||||
|
||||
@@ -27,16 +27,14 @@
|
||||
/**
|
||||
* @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)
|
||||
*/
|
||||
use lazy_static::lazy_static;
|
||||
use once_cell::sync::Lazy;
|
||||
use regex::Regex;
|
||||
|
||||
use crate::{common::BitArray, Exceptions};
|
||||
|
||||
lazy_static! {
|
||||
static ref ONE: Regex = Regex::new("1").unwrap();
|
||||
static ref ZERO: Regex = Regex::new("0").unwrap();
|
||||
static ref SPACE: Regex = Regex::new(" ").unwrap();
|
||||
}
|
||||
static ONE: Lazy<Regex> = Lazy::new(|| Regex::new("1").unwrap());
|
||||
static ZERO: Lazy<Regex> = Lazy::new(|| Regex::new("0").unwrap());
|
||||
static SPACE: Lazy<Regex> = Lazy::new(|| Regex::new(" ").unwrap());
|
||||
|
||||
/*
|
||||
* Constructs a BitArray from a String like the one returned from BitArray.toString()
|
||||
|
||||
@@ -31,115 +31,111 @@ use std::collections::HashMap;
|
||||
|
||||
use crate::Exceptions;
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
use once_cell::sync::Lazy;
|
||||
|
||||
lazy_static! {
|
||||
static TWO_DIGIT_DATA_LENGTH: Lazy<HashMap<String, DataLength>> = Lazy::new(|| {
|
||||
let mut hm = HashMap::new();
|
||||
hm.insert("00".to_owned(), DataLength::fixed(18));
|
||||
hm.insert("01".to_owned(), DataLength::fixed(14));
|
||||
hm.insert("02".to_owned(), DataLength::fixed(14));
|
||||
hm.insert("10".to_owned(), DataLength::variable(20));
|
||||
hm.insert("11".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("12".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("13".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("15".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("17".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("20".to_owned(), DataLength::fixed(2));
|
||||
hm.insert("21".to_owned(), DataLength::variable(20));
|
||||
hm.insert("22".to_owned(), DataLength::variable(29));
|
||||
hm.insert("30".to_owned(), DataLength::variable(8));
|
||||
hm.insert("37".to_owned(), DataLength::variable(8));
|
||||
//internal company codes
|
||||
for i in 90..=99 {
|
||||
// for (int i = 90; i <= 99; i++) {
|
||||
hm.insert(i.to_string(), DataLength::variable(30));
|
||||
}
|
||||
hm
|
||||
});
|
||||
|
||||
static ref TWO_DIGIT_DATA_LENGTH : HashMap<String,DataLength> = {
|
||||
let mut hm = HashMap::new();
|
||||
hm.insert("00".to_owned(), DataLength::fixed(18));
|
||||
hm.insert("01".to_owned(), DataLength::fixed(14));
|
||||
hm.insert("02".to_owned(), DataLength::fixed(14));
|
||||
hm.insert("10".to_owned(), DataLength::variable(20));
|
||||
hm.insert("11".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("12".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("13".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("15".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("17".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("20".to_owned(), DataLength::fixed(2));
|
||||
hm.insert("21".to_owned(), DataLength::variable(20));
|
||||
hm.insert("22".to_owned(), DataLength::variable(29));
|
||||
hm.insert("30".to_owned(), DataLength::variable(8));
|
||||
hm.insert("37".to_owned(), DataLength::variable(8));
|
||||
//internal company codes
|
||||
for i in 90..=99 {
|
||||
// for (int i = 90; i <= 99; i++) {
|
||||
hm.insert(i.to_string(), DataLength::variable(30));
|
||||
}
|
||||
hm
|
||||
};
|
||||
static THREE_DIGIT_DATA_LENGTH: Lazy<HashMap<String, DataLength>> = Lazy::new(|| {
|
||||
let mut hm = HashMap::new();
|
||||
hm.insert("240".to_owned(), DataLength::variable(30));
|
||||
hm.insert("241".to_owned(), DataLength::variable(30));
|
||||
hm.insert("242".to_owned(), DataLength::variable(6));
|
||||
hm.insert("250".to_owned(), DataLength::variable(30));
|
||||
hm.insert("251".to_owned(), DataLength::variable(30));
|
||||
hm.insert("253".to_owned(), DataLength::variable(17));
|
||||
hm.insert("254".to_owned(), DataLength::variable(20));
|
||||
hm.insert("400".to_owned(), DataLength::variable(30));
|
||||
hm.insert("401".to_owned(), DataLength::variable(30));
|
||||
hm.insert("402".to_owned(), DataLength::fixed(17));
|
||||
hm.insert("403".to_owned(), DataLength::variable(30));
|
||||
hm.insert("410".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("411".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("412".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("413".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("414".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("420".to_owned(), DataLength::variable(20));
|
||||
hm.insert("421".to_owned(), DataLength::variable(15));
|
||||
hm.insert("422".to_owned(), DataLength::fixed(3));
|
||||
hm.insert("423".to_owned(), DataLength::variable(15));
|
||||
hm.insert("424".to_owned(), DataLength::fixed(3));
|
||||
hm.insert("425".to_owned(), DataLength::fixed(3));
|
||||
hm.insert("426".to_owned(), DataLength::fixed(3));
|
||||
|
||||
static ref THREE_DIGIT_DATA_LENGTH : HashMap<String,DataLength>=
|
||||
{
|
||||
let mut hm = HashMap::new();
|
||||
hm.insert("240".to_owned(), DataLength::variable(30));
|
||||
hm.insert("241".to_owned(), DataLength::variable(30));
|
||||
hm.insert("242".to_owned(), DataLength::variable(6));
|
||||
hm.insert("250".to_owned(), DataLength::variable(30));
|
||||
hm.insert("251".to_owned(), DataLength::variable(30));
|
||||
hm.insert("253".to_owned(), DataLength::variable(17));
|
||||
hm.insert("254".to_owned(), DataLength::variable(20));
|
||||
hm.insert("400".to_owned(), DataLength::variable(30));
|
||||
hm.insert("401".to_owned(), DataLength::variable(30));
|
||||
hm.insert("402".to_owned(), DataLength::fixed(17));
|
||||
hm.insert("403".to_owned(), DataLength::variable(30));
|
||||
hm.insert("410".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("411".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("412".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("413".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("414".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("420".to_owned(), DataLength::variable(20));
|
||||
hm.insert("421".to_owned(), DataLength::variable(15));
|
||||
hm.insert("422".to_owned(), DataLength::fixed(3));
|
||||
hm.insert("423".to_owned(), DataLength::variable(15));
|
||||
hm.insert("424".to_owned(), DataLength::fixed(3));
|
||||
hm.insert("425".to_owned(), DataLength::fixed(3));
|
||||
hm.insert("426".to_owned(), DataLength::fixed(3));
|
||||
hm
|
||||
});
|
||||
|
||||
hm
|
||||
};
|
||||
static THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH: Lazy<HashMap<String, DataLength>> = Lazy::new(|| {
|
||||
let mut hm = HashMap::new();
|
||||
for i in 310..=316 {
|
||||
// for (int i = 310; i <= 316; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
for i in 320..=336 {
|
||||
// for (int i = 320; i <= 336; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
for i in 340..=357 {
|
||||
// for (int i = 340; i <= 357; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
for i in 360..=369 {
|
||||
// for (int i = 360; i <= 369; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
hm.insert("390".to_owned(), DataLength::variable(15));
|
||||
hm.insert("391".to_owned(), DataLength::variable(18));
|
||||
hm.insert("392".to_owned(), DataLength::variable(15));
|
||||
hm.insert("393".to_owned(), DataLength::variable(18));
|
||||
hm.insert("703".to_owned(), DataLength::variable(30));
|
||||
|
||||
static ref THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH:HashMap<String,DataLength> = {
|
||||
let mut hm = HashMap::new();
|
||||
for i in 310..=316 {
|
||||
// for (int i = 310; i <= 316; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
for i in 320..=336 {
|
||||
// for (int i = 320; i <= 336; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
for i in 340..=357 {
|
||||
// for (int i = 340; i <= 357; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
for i in 360..=369 {
|
||||
// for (int i = 360; i <= 369; i++) {
|
||||
hm.insert(i.to_string(), DataLength::fixed(6));
|
||||
}
|
||||
hm.insert("390".to_owned(), DataLength::variable(15));
|
||||
hm.insert("391".to_owned(), DataLength::variable(18));
|
||||
hm.insert("392".to_owned(), DataLength::variable(15));
|
||||
hm.insert("393".to_owned(), DataLength::variable(18));
|
||||
hm.insert("703".to_owned(), DataLength::variable(30));
|
||||
hm
|
||||
});
|
||||
|
||||
hm
|
||||
};
|
||||
static FOUR_DIGIT_DATA_LENGTH: Lazy<HashMap<String, DataLength>> = Lazy::new(|| {
|
||||
let mut hm = HashMap::new();
|
||||
hm.insert("7001".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("7002".to_owned(), DataLength::variable(30));
|
||||
hm.insert("7003".to_owned(), DataLength::fixed(10));
|
||||
hm.insert("8001".to_owned(), DataLength::fixed(14));
|
||||
hm.insert("8002".to_owned(), DataLength::variable(20));
|
||||
hm.insert("8003".to_owned(), DataLength::variable(30));
|
||||
hm.insert("8004".to_owned(), DataLength::variable(30));
|
||||
hm.insert("8005".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("8006".to_owned(), DataLength::fixed(18));
|
||||
hm.insert("8007".to_owned(), DataLength::variable(30));
|
||||
hm.insert("8008".to_owned(), DataLength::variable(12));
|
||||
hm.insert("8018".to_owned(), DataLength::fixed(18));
|
||||
hm.insert("8020".to_owned(), DataLength::variable(25));
|
||||
hm.insert("8100".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("8101".to_owned(), DataLength::fixed(10));
|
||||
hm.insert("8102".to_owned(), DataLength::fixed(2));
|
||||
hm.insert("8110".to_owned(), DataLength::variable(70));
|
||||
hm.insert("8200".to_owned(), DataLength::variable(70));
|
||||
|
||||
static ref FOUR_DIGIT_DATA_LENGTH : HashMap<String,DataLength>={
|
||||
let mut hm = HashMap::new();
|
||||
hm.insert("7001".to_owned(), DataLength::fixed(13));
|
||||
hm.insert("7002".to_owned(), DataLength::variable(30));
|
||||
hm.insert("7003".to_owned(), DataLength::fixed(10));
|
||||
hm.insert("8001".to_owned(), DataLength::fixed(14));
|
||||
hm.insert("8002".to_owned(), DataLength::variable(20));
|
||||
hm.insert("8003".to_owned(), DataLength::variable(30));
|
||||
hm.insert("8004".to_owned(), DataLength::variable(30));
|
||||
hm.insert("8005".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("8006".to_owned(), DataLength::fixed(18));
|
||||
hm.insert("8007".to_owned(), DataLength::variable(30));
|
||||
hm.insert("8008".to_owned(), DataLength::variable(12));
|
||||
hm.insert("8018".to_owned(), DataLength::fixed(18));
|
||||
hm.insert("8020".to_owned(), DataLength::variable(25));
|
||||
hm.insert("8100".to_owned(), DataLength::fixed(6));
|
||||
hm.insert("8101".to_owned(), DataLength::fixed(10));
|
||||
hm.insert("8102".to_owned(), DataLength::fixed(2));
|
||||
hm.insert("8110".to_owned(), DataLength::variable(70));
|
||||
hm.insert("8200".to_owned(), DataLength::variable(70));
|
||||
|
||||
hm
|
||||
};
|
||||
}
|
||||
hm
|
||||
});
|
||||
|
||||
pub fn parseFieldsInGeneralPurpose(rawInformation: &str) -> Result<String, Exceptions> {
|
||||
if rawInformation.is_empty() {
|
||||
|
||||
@@ -40,6 +40,8 @@ use crate::{
|
||||
RXingResultMetadataType, RXingResultMetadataValue, Reader,
|
||||
};
|
||||
|
||||
use once_cell::sync::Lazy;
|
||||
|
||||
use super::{bit_array_builder, decoders::abstract_expanded_decoder, ExpandedPair, ExpandedRow};
|
||||
|
||||
const FINDER_PAT_A: u32 = 0;
|
||||
@@ -49,9 +51,8 @@ const FINDER_PAT_D: u32 = 3;
|
||||
const FINDER_PAT_E: u32 = 4;
|
||||
const FINDER_PAT_F: u32 = 5;
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
lazy_static! {
|
||||
static ref FINDER_PATTERN_SEQUENCES: Vec<Vec<u32>> = vec![
|
||||
static FINDER_PATTERN_SEQUENCES: Lazy<Vec<Vec<u32>>> = Lazy::new(|| {
|
||||
vec![
|
||||
vec![FINDER_PAT_A, FINDER_PAT_A],
|
||||
vec![FINDER_PAT_A, FINDER_PAT_B, FINDER_PAT_B],
|
||||
vec![FINDER_PAT_A, FINDER_PAT_C, FINDER_PAT_B, FINDER_PAT_D],
|
||||
@@ -60,7 +61,7 @@ lazy_static! {
|
||||
FINDER_PAT_E,
|
||||
FINDER_PAT_B,
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_C
|
||||
FINDER_PAT_C,
|
||||
],
|
||||
vec![
|
||||
FINDER_PAT_A,
|
||||
@@ -68,7 +69,7 @@ lazy_static! {
|
||||
FINDER_PAT_B,
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_F
|
||||
FINDER_PAT_F,
|
||||
],
|
||||
vec![
|
||||
FINDER_PAT_A,
|
||||
@@ -77,7 +78,7 @@ lazy_static! {
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_E,
|
||||
FINDER_PAT_F,
|
||||
FINDER_PAT_F
|
||||
FINDER_PAT_F,
|
||||
],
|
||||
vec![
|
||||
FINDER_PAT_A,
|
||||
@@ -87,7 +88,7 @@ lazy_static! {
|
||||
FINDER_PAT_C,
|
||||
FINDER_PAT_C,
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_D
|
||||
FINDER_PAT_D,
|
||||
],
|
||||
vec![
|
||||
FINDER_PAT_A,
|
||||
@@ -98,7 +99,7 @@ lazy_static! {
|
||||
FINDER_PAT_C,
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_E,
|
||||
FINDER_PAT_E
|
||||
FINDER_PAT_E,
|
||||
],
|
||||
vec![
|
||||
FINDER_PAT_A,
|
||||
@@ -110,7 +111,7 @@ lazy_static! {
|
||||
FINDER_PAT_D,
|
||||
FINDER_PAT_E,
|
||||
FINDER_PAT_F,
|
||||
FINDER_PAT_F
|
||||
FINDER_PAT_F,
|
||||
],
|
||||
vec![
|
||||
FINDER_PAT_A,
|
||||
@@ -123,10 +124,10 @@ lazy_static! {
|
||||
FINDER_PAT_E,
|
||||
FINDER_PAT_E,
|
||||
FINDER_PAT_F,
|
||||
FINDER_PAT_F
|
||||
FINDER_PAT_F,
|
||||
],
|
||||
];
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
/**
|
||||
* @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)
|
||||
|
||||
@@ -21,14 +21,12 @@ use crate::{
|
||||
|
||||
use super::{one_d_reader, EANManufacturerOrgSupport, OneDReader, UPCEANExtensionSupport};
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
use once_cell::sync::Lazy;
|
||||
|
||||
lazy_static! {
|
||||
pub static ref EAN_MANUFACTURER_SUPPORT: EANManufacturerOrgSupport =
|
||||
EANManufacturerOrgSupport::default();
|
||||
pub static ref UPC_EAN_EXTENSION_SUPPORT: UPCEANExtensionSupport =
|
||||
UPCEANExtensionSupport::default();
|
||||
}
|
||||
pub static EAN_MANUFACTURER_SUPPORT: Lazy<EANManufacturerOrgSupport> =
|
||||
Lazy::new(|| EANManufacturerOrgSupport::default());
|
||||
pub static UPC_EAN_EXTENSION_SUPPORT: Lazy<UPCEANExtensionSupport> =
|
||||
Lazy::new(|| UPCEANExtensionSupport::default());
|
||||
|
||||
// These two values are critical for determining how permissive the decoding will be.
|
||||
// We've arrived at these values through a lot of trial and error. Setting them any higher
|
||||
|
||||
Reference in New Issue
Block a user