mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-28 13:22:34 +00:00
minimal eci passes with priority encoder
This commit is contained in:
@@ -221,11 +221,7 @@ impl MinimalECIInput {
|
|||||||
}
|
}
|
||||||
bytes_hld
|
bytes_hld
|
||||||
} else {
|
} else {
|
||||||
Self::encodeMinimally(
|
Self::encodeMinimally(stringToEncodeInput, &encoderSet, fnc1)
|
||||||
stringToEncodeInput,
|
|
||||||
&encoderSet,
|
|
||||||
fnc1
|
|
||||||
)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
@@ -286,18 +282,22 @@ impl MinimalECIInput {
|
|||||||
|
|
||||||
let mut start = 0;
|
let mut start = 0;
|
||||||
let mut end = encoderSet.len();
|
let mut end = encoderSet.len();
|
||||||
if let Some(fnc1) = fnc1 {
|
//if let Some(fnc1) = fnc1 {
|
||||||
if encoderSet.getPriorityEncoderIndex().is_some()
|
if encoderSet.getPriorityEncoderIndex().is_some()
|
||||||
&& (ch.chars().nth(0).unwrap() == fnc1.chars().nth(1).unwrap()
|
&& (( fnc1.is_some() && ch.chars().nth(0).unwrap() == fnc1.as_ref().unwrap().chars().nth(0).unwrap())
|
||||||
|| encoderSet.canEncode(ch, encoderSet.getPriorityEncoderIndex().unwrap()))
|
|| encoderSet.canEncode(ch, encoderSet.getPriorityEncoderIndex().unwrap()))
|
||||||
{
|
{
|
||||||
start = encoderSet.getPriorityEncoderIndex().unwrap();
|
start = encoderSet.getPriorityEncoderIndex().unwrap();
|
||||||
end = start + 1;
|
end = start + 1;
|
||||||
}}
|
}
|
||||||
|
//}
|
||||||
|
|
||||||
for i in start..end {
|
for i in start..end {
|
||||||
// for (int i = start; i < end; i++) {
|
// for (int i = start; i < end; i++) {
|
||||||
if (fnc1.is_some() && ch.chars().nth(0).unwrap() == fnc1.as_ref().unwrap().chars().nth(0).unwrap()) || encoderSet.canEncode(ch, i) {
|
if (fnc1.is_some()
|
||||||
|
&& ch.chars().nth(0).unwrap() == fnc1.as_ref().unwrap().chars().nth(0).unwrap())
|
||||||
|
|| encoderSet.canEncode(ch, i)
|
||||||
|
{
|
||||||
Self::addEdge(
|
Self::addEdge(
|
||||||
edges,
|
edges,
|
||||||
from + 1,
|
from + 1,
|
||||||
@@ -379,7 +379,10 @@ impl MinimalECIInput {
|
|||||||
// 0..0,
|
// 0..0,
|
||||||
// [256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16],
|
// [256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16],
|
||||||
// );
|
// );
|
||||||
intsAL.insert(0, 256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16);
|
intsAL.insert(
|
||||||
|
0,
|
||||||
|
256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
current = c.previous.clone();
|
current = c.previous.clone();
|
||||||
}
|
}
|
||||||
@@ -422,7 +425,7 @@ impl InputEdge {
|
|||||||
size += prev.cachedTotalSize;
|
size += prev.cachedTotalSize;
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
c: if fnc1.is_some() && &c == fnc1.as_ref().unwrap() {
|
c: if fnc1.is_some() && &c == fnc1.as_ref().unwrap() {
|
||||||
String::from("\u{1000}")
|
String::from("\u{1000}")
|
||||||
} else {
|
} else {
|
||||||
String::from(c)
|
String::from(c)
|
||||||
@@ -438,7 +441,7 @@ impl InputEdge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
c: if fnc1.is_some() && &c == fnc1.as_ref().unwrap() {
|
c: if fnc1.is_some() && &c == fnc1.as_ref().unwrap() {
|
||||||
String::from("\u{1000}")
|
String::from("\u{1000}")
|
||||||
} else {
|
} else {
|
||||||
String::from(c)
|
String::from(c)
|
||||||
|
|||||||
Reference in New Issue
Block a user