mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-28 05:12:34 +00:00
more minimal encoder functions pass
This commit is contained in:
@@ -312,7 +312,8 @@ impl MinimalECIInput {
|
|||||||
encoderSet: &ECIEncoderSet,
|
encoderSet: &ECIEncoderSet,
|
||||||
fnc1: Option<&str>,
|
fnc1: Option<&str>,
|
||||||
) -> Vec<u16> {
|
) -> Vec<u16> {
|
||||||
let inputLength = stringToEncode.chars().count();
|
// let inputLength = stringToEncode.chars().count();
|
||||||
|
let inputLength = stringToEncode.graphemes(true).count();
|
||||||
|
|
||||||
// Array that represents vertices. There is a vertex for every character and encoding.
|
// Array that represents vertices. There is a vertex for every character and encoding.
|
||||||
let mut edges = vec![vec![None; encoderSet.len()]; inputLength + 1]; //InputEdge[inputLength + 1][encoderSet.length()];
|
let mut edges = vec![vec![None; encoderSet.len()]; inputLength + 1]; //InputEdge[inputLength + 1][encoderSet.length()];
|
||||||
|
|||||||
@@ -557,7 +557,7 @@ fn encodeHighLevel(msg: &str) -> String {
|
|||||||
fn encodeHighLevelCompare(msg: &str, compareSizeToMinimalEncoder: bool) -> String {
|
fn encodeHighLevelCompare(msg: &str, compareSizeToMinimalEncoder: bool) -> String {
|
||||||
let encoded = high_level_encoder::encodeHighLevel(msg).expect("encodes");
|
let encoded = high_level_encoder::encodeHighLevel(msg).expect("encodes");
|
||||||
let encoded2 = minimal_encoder::encodeHighLevel(msg).expect("encodes");
|
let encoded2 = minimal_encoder::encodeHighLevel(msg).expect("encodes");
|
||||||
assert!(!compareSizeToMinimalEncoder || encoded2.len() <= encoded.len(), "{} <= {}", encoded2.len() , encoded.len());
|
assert!(!compareSizeToMinimalEncoder || encoded2.chars().count() <= encoded.chars().count(), "{} <= {}", encoded2.chars().count() , encoded.chars().count());
|
||||||
visualize(&encoded)
|
visualize(&encoded)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1017,7 +1017,7 @@ impl Edge {
|
|||||||
assert!(self.characterLength % 3 == 0);
|
assert!(self.characterLength % 3 == 0);
|
||||||
let mut result = vec![0u8; self.characterLength as usize / 3 * 2];
|
let mut result = vec![0u8; self.characterLength as usize / 3 * 2];
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
while i <= result.len() {
|
while i < result.len() {
|
||||||
// for (int i = 0; i < result.length; i += 2) {
|
// for (int i = 0; i < result.length; i += 2) {
|
||||||
Self::setC40Word(
|
Self::setC40Word(
|
||||||
&mut result,
|
&mut result,
|
||||||
@@ -1322,7 +1322,8 @@ impl RXingResult {
|
|||||||
randomizeLengths.push(size);
|
randomizeLengths.push(size);
|
||||||
}
|
}
|
||||||
if Edge::getPreviousStartMode(current.previous.clone()) != current.getMode() {
|
if Edge::getPreviousStartMode(current.previous.clone()) != current.getMode() {
|
||||||
Self::prepend(¤t.getLatchBytes()?, &mut bytesAL);}
|
Self::prepend(¤t.getLatchBytes()?, &mut bytesAL);
|
||||||
|
}
|
||||||
size = 0;
|
size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1450,7 +1451,7 @@ impl Input {
|
|||||||
pub fn getFNC1Character(&self) -> Option<char> {
|
pub fn getFNC1Character(&self) -> Option<char> {
|
||||||
if self.internal.getFNC1Character() == 1000 {
|
if self.internal.getFNC1Character() == 1000 {
|
||||||
None
|
None
|
||||||
}else {
|
} else {
|
||||||
Some(self.internal.getFNC1Character() as u8 as char)
|
Some(self.internal.getFNC1Character() as u8 as char)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user