mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-27 21:02:35 +00:00
Cleanup of many components of the code.
Many unwraps, expects, and panics removed or handled. More rustification of the codebase. Squashed commit of the following: commit 80c6483cf8c819496a7b781f9e3a149d1f18d5fe Author: Henry <henry@azule.info> Date: Fri Feb 10 20:36:57 2023 -0600 add other parsed result option commit 412d92ae585e7bf194697f5282dbc045e448bace Author: Henry <henry@azule.info> Date: Fri Feb 10 19:06:34 2023 -0600 fix some panics commit 9108d3e931aadec00fc0bf346ebc52d24e5d8146 Author: Henry <henry@azule.info> Date: Fri Feb 10 18:56:30 2023 -0600 clippy --fix commit 8cd89d314323f54f342f15fc73297b62d418ac79 Author: Henry <henry@azule.info> Date: Fri Feb 10 18:55:45 2023 -0600 some more cleanup in aztec commit fb7f9242e273b85a4bb212f22a185a0dcbfafc36 Author: Henry <henry@azule.info> Date: Fri Feb 10 18:19:54 2023 -0600 cleanup root commit 4fb7c0639830869149332b29be789e891eade3e7 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 16:50:15 2023 -0600 format commit 3ac271af657b25fbe5ee39cbdf8859e5aa38ea41 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 16:43:14 2023 -0600 clippy --fix commit 0c5b4c1477159db93a9da9645039f51cd1a7c574 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 16:04:31 2023 -0600 qrcode cleanup complete commit 70c1d107cc672e45d46567c650c46fece7e7da9c Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 13:28:25 2023 -0600 clippy --fix commit e13263d0f1f2a13dbb59b6e60d8b871a32babc92 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 13:27:44 2023 -0600 qrcode detector cleanup commit f7f2855099e469fe1091868c6099196705d0ae83 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 11:48:13 2023 -0600 qrcode decoder commit bdbaaba597b3479639c2ed3726465a69e3004471 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 11:13:18 2023 -0600 clippy --fix commit fd6dbcaeb1f45dc91ae98f0e7c58aad48d67df78 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 11:12:28 2023 -0600 pdf417 cleanup complete commit 7bbd47604c2639a5eb61bdb5533e71be3bce95a1 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 10:39:28 2023 -0600 clippy --fix commit 8f4962b7bb5f133524fe4d3d4948e5672a88c545 Author: Henry Schimke <henry@azule.info> Date: Fri Feb 10 10:39:00 2023 -0600 cleanup on pdf417 hie commit 254c8243953776d3c8704dd81529aadd05d5a94e Author: Henry <henry@azule.info> Date: Fri Feb 10 02:51:21 2023 +0000 partway through pdf417 hle commit d4a5b00fde8c0282b0c6e4175a21c1e111b11533 Author: Henry <henry@azule.info> Date: Wed Feb 8 21:35:25 2023 +0000 clippy --fix commit 2bd4a8e218aa963a88997b50bc5a198f9a88205e Author: Henry <henry@azule.info> Date: Wed Feb 8 21:31:55 2023 +0000 pdf417 decode and detect cleanup commit 05130ac54a72c2303045d64507bf6185aa74e531 Author: Henry Schimke <henry@azule.info> Date: Tue Feb 7 08:06:25 2023 -0600 at decodeTextCompaction in decoded_bit_straem_parser commit 924c023a7d2339dfffa6ef0c4a805fb192576796 Author: Henry Schimke <henry@azule.info> Date: Mon Feb 6 18:22:02 2023 -0600 clippy --fix commit 5cfb81a885c22b4b5ec937a79be31d0815def211 Author: Henry Schimke <henry@azule.info> Date: Mon Feb 6 18:20:22 2023 -0600 oned cleanup commit 0649b64854baf56a8e3314728d4f6cf4063db8b2 Author: Henry Schimke <henry@azule.info> Date: Mon Feb 6 11:47:28 2023 -0600 rss cleanup commit 2d3127898fc11f7e65d590e983cda799b798b646 Author: Henry Schimke <henry@azule.info> Date: Mon Feb 6 10:19:56 2023 -0600 multi cleanup commit 7e8b43a159083a2096123e6204d4d1d359c59981 Author: Henry <henry@azule.info> Date: Sun Feb 5 21:41:59 2023 -0600 cargo fmt commit df8285e8da07b4bffd48ca6e596de3f010eb8d9e Author: Henry <henry@azule.info> Date: Sun Feb 5 21:41:29 2023 -0600 maxicode cleanup commit a51f923a14016eb416ca202b2194258808dde3e7 Author: Henry <henry@azule.info> Date: Sun Feb 5 21:27:57 2023 -0600 cargo fmt commit 332d7eef4a25318611025a3fcb0b70c604d917be Author: Henry <henry@azule.info> Date: Sun Feb 5 21:27:48 2023 -0600 cleanup datamatrix commit eb2311c476a9c9993f271ab6cf9fd359aedca26f Author: Henry <henry@azule.info> Date: Sun Feb 5 21:27:26 2023 -0600 cargo clippy --fix commit 2abaa4c51d287f619d4c7a438f85ba2a30f159cf Author: Henry <henry@azule.info> Date: Sun Feb 5 19:13:02 2023 -0600 finish cleanup in parsers commit 716aa2fbf728716cff36657a5fd80e7bca5276b7 Author: Henry Schimke <henry@azule.info> Date: Sun Feb 5 17:44:56 2023 -0600 cleanup continues commit 7d843788a49fa9cc82c4616d226c0f882e73612b Author: Henry Schimke <henry@azule.info> Date: Sun Feb 5 15:15:09 2023 -0600 common cleanup commit fd251866c68f22d450dd428c93d7a3620bf1be27 Author: Henry Schimke <henry@azule.info> Date: Sun Feb 5 10:24:54 2023 -0600 cleanup reedsolomon commit 132e27ed1468f5c1ce998516ff5a00687217c3e6 Author: Henry Schimke <henry@azule.info> Date: Sun Feb 5 09:52:04 2023 -0600 make MathUtils more generic commit d8352b7fff4cb4f9ecc8e8a969710d26ef410e8b Author: Henry Schimke <henry@azule.info> Date: Sun Feb 5 09:29:33 2023 -0600 cleanup some string handling in ResultParser There may still be some edge cases where multi-byte characters break the parser
This commit is contained in:
@@ -73,23 +73,18 @@ impl Writer for PDF417Writer {
|
||||
if let Some(EncodeHintValue::Pdf417Compact(compact)) =
|
||||
hints.get(&EncodeHintType::PDF417_COMPACT)
|
||||
{
|
||||
// if hints.containsKey(EncodeHintType::PDF417_COMPACT) {
|
||||
if let Ok(res) = compact.parse::<bool>() {
|
||||
encoder.setCompact(res);
|
||||
}
|
||||
// encoder.setCompact(Boolean.parseBoolean(hints.get(EncodeHintType::PDF417_COMPACT).toString()));
|
||||
}
|
||||
if let Some(EncodeHintValue::Pdf417Compaction(compaction)) =
|
||||
hints.get(&EncodeHintType::PDF417_COMPACTION)
|
||||
{
|
||||
// if hints.containsKey(EncodeHintType::PDF417_COMPACTION) {
|
||||
encoder.setCompaction(compaction.try_into()?);
|
||||
}
|
||||
if let Some(EncodeHintValue::Pdf417Dimensions(dimensions)) =
|
||||
hints.get(&EncodeHintType::PDF417_DIMENSIONS)
|
||||
{
|
||||
// if hints.containsKey(EncodeHintType::PDF417_DIMENSIONS) {
|
||||
// Dimensions dimensions = (Dimensions) hints.get(EncodeHintType::PDF417_DIMENSIONS);
|
||||
encoder.setDimensions(
|
||||
dimensions.getMaxCols() as u32,
|
||||
dimensions.getMinCols() as u32,
|
||||
@@ -98,27 +93,20 @@ impl Writer for PDF417Writer {
|
||||
);
|
||||
}
|
||||
if let Some(EncodeHintValue::Margin(m1)) = hints.get(&EncodeHintType::MARGIN) {
|
||||
// if hints.containsKey(EncodeHintType::MARGIN) {
|
||||
if let Ok(m) = m1.parse::<u32>() {
|
||||
//margin = Integer.parseInt(hints.get(EncodeHintType::MARGIN).toString());
|
||||
margin = m;
|
||||
}
|
||||
}
|
||||
if let Some(EncodeHintValue::ErrorCorrection(ec)) =
|
||||
hints.get(&EncodeHintType::ERROR_CORRECTION)
|
||||
{
|
||||
// if hints.containsKey(EncodeHintType::ERROR_CORRECTION) {
|
||||
if let Ok(ec_parsed) = ec.parse::<u32>() {
|
||||
errorCorrectionLevel = ec_parsed;
|
||||
}
|
||||
// errorCorrectionLevel = Integer.parseInt(hints.get(EncodeHintType::ERROR_CORRECTION).toString());
|
||||
}
|
||||
if let Some(EncodeHintValue::CharacterSet(cs)) =
|
||||
hints.get(&EncodeHintType::CHARACTER_SET)
|
||||
{
|
||||
// if hints.containsKey(EncodeHintType::CHARACTER_SET) {
|
||||
// if let Some(encoding::label::encoding_from_whatwg_label(cs))
|
||||
// let encoding = Charset.forName(hints.get(&EncodeHintType::CHARACTER_SET).toString());
|
||||
encoder.setEncoding(encoding::label::encoding_from_whatwg_label(cs));
|
||||
}
|
||||
if let Some(EncodeHintValue::Pdf417AutoEci(auto_eci_str)) =
|
||||
@@ -128,8 +116,6 @@ impl Writer for PDF417Writer {
|
||||
autoECI = auto_eci_parsed;
|
||||
}
|
||||
}
|
||||
// autoECI = hints.containsKey(EncodeHintType::PDF417_AUTO_ECI) &&
|
||||
// Boolean.parseBoolean(hints.get(EncodeHintType::PDF417_AUTO_ECI).toString());
|
||||
}
|
||||
|
||||
Self::bitMatrixFromEncoder(
|
||||
@@ -163,7 +149,7 @@ impl PDF417Writer {
|
||||
let mut originalScale = encoder
|
||||
.getBarcodeMatrix()
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.ok_or(Exceptions::IllegalStateException(None))?
|
||||
.getScaledMatrix(1, aspectRatio);
|
||||
let mut rotated = false;
|
||||
if (height > width) != (originalScale[0].len() < originalScale.len()) {
|
||||
@@ -179,14 +165,17 @@ impl PDF417Writer {
|
||||
let mut scaledMatrix = encoder
|
||||
.getBarcodeMatrix()
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.ok_or(Exceptions::IllegalStateException(None))?
|
||||
.getScaledMatrix(scale, scale * aspectRatio);
|
||||
if rotated {
|
||||
scaledMatrix = Self::rotateArray(&scaledMatrix);
|
||||
}
|
||||
return Ok(Self::bitMatrixFromBitArray(&scaledMatrix, margin));
|
||||
return Self::bitMatrixFromBitArray(&scaledMatrix, margin)
|
||||
.ok_or(Exceptions::IllegalStateException(None));
|
||||
}
|
||||
Ok(Self::bitMatrixFromBitArray(&originalScale, margin))
|
||||
|
||||
Self::bitMatrixFromBitArray(&originalScale, margin)
|
||||
.ok_or(Exceptions::IllegalStateException(None))
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -196,22 +185,19 @@ impl PDF417Writer {
|
||||
* @param margin border around the barcode
|
||||
* @return BitMatrix of the input
|
||||
*/
|
||||
fn bitMatrixFromBitArray(input: &Vec<Vec<u8>>, margin: u32) -> BitMatrix {
|
||||
fn bitMatrixFromBitArray(input: &Vec<Vec<u8>>, margin: u32) -> Option<BitMatrix> {
|
||||
// Creates the bit matrix with extra space for whitespace
|
||||
let mut output = BitMatrix::new(
|
||||
input[0].len() as u32 + 2 * margin,
|
||||
input.len() as u32 + 2 * margin,
|
||||
)
|
||||
.expect("must generate");
|
||||
.ok()?;
|
||||
output.clear();
|
||||
let mut y = 0;
|
||||
let mut yOutput = (output.getHeight() - margin - 1) as isize;
|
||||
while y < input.len() {
|
||||
// for (int y = 0, yOutput = output.getHeight() - margin - 1; y < input.length; y++, yOutput--) {
|
||||
let inputY = &input[y];
|
||||
// for x in 0..input[y].len() {
|
||||
for (x, x_index_val) in inputY.iter().enumerate().take(input[y].len()) {
|
||||
// for (int x = 0; x < input[0].length; x++) {
|
||||
// Zero is white in the byte matrix
|
||||
if x_index_val == &1 {
|
||||
output.set(x as u32 + margin, yOutput as u32);
|
||||
@@ -220,22 +206,19 @@ impl PDF417Writer {
|
||||
y += 1;
|
||||
yOutput -= 1;
|
||||
}
|
||||
output
|
||||
Some(output)
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes and rotates the it 90 degrees
|
||||
*/
|
||||
fn rotateArray(bitarray: &Vec<Vec<u8>>) -> Vec<Vec<u8>> {
|
||||
let mut temp = vec![vec![0; bitarray[0].len()]; bitarray.len()]; // new byte[bitarray[0].length][bitarray.length];
|
||||
let mut temp = vec![vec![0; bitarray[0].len()]; bitarray.len()];
|
||||
|
||||
for ii in 0..bitarray.len() {
|
||||
// for (int ii = 0; ii < bitarray.length; ii++) {
|
||||
// This makes the direction consistent on screen when rotating the
|
||||
// screen;
|
||||
// This makes the direction consistent on screen when rotating the screen;
|
||||
let inverseii = bitarray.len() - ii - 1;
|
||||
for (jj, tmp_spot) in temp.iter_mut().enumerate().take(bitarray[0].len()) {
|
||||
// for jj in 0..bitarray[0].len() {
|
||||
// for (int jj = 0; jj < bitarray[0].length; jj++) {
|
||||
tmp_spot[inverseii] = bitarray[ii][jj];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user