mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-27 04:42:35 +00:00
switch to rust array filter from java iterator
This commit is contained in:
@@ -440,20 +440,11 @@ impl HighLevelEncoder {
|
|||||||
fn simplify_states(states: Vec<State>) -> Vec<State> {
|
fn simplify_states(states: Vec<State>) -> Vec<State> {
|
||||||
let mut result: Vec<State> = Vec::new();
|
let mut result: Vec<State> = Vec::new();
|
||||||
for newState in states {
|
for newState in states {
|
||||||
// for (State newState : states) {
|
let add = result
|
||||||
let mut add = true;
|
.iter()
|
||||||
for i in 0..result.len() {
|
.fold(true, |acc, s| !s.isBetterThanOrEqualTo(&newState) && acc);
|
||||||
// for st in result {
|
if add {
|
||||||
// for (Iterator<State> iterator = result.iterator(); iterator.hasNext();) {
|
result.retain(|s| !newState.isBetterThanOrEqualTo(s));
|
||||||
if let Some(oldState) = result.get(i) {
|
|
||||||
if oldState.isBetterThanOrEqualTo(&newState) {
|
|
||||||
add = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if newState.isBetterThanOrEqualTo(oldState) {
|
|
||||||
result.remove(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if add {
|
if add {
|
||||||
result.push(newState);
|
result.push(newState);
|
||||||
|
|||||||
@@ -491,28 +491,43 @@ impl RSSExpandedReader {
|
|||||||
|
|
||||||
// Remove all the rows that contains only specified pairs
|
// Remove all the rows that contains only specified pairs
|
||||||
fn removePartialRows(pairs: &[ExpandedPair], rows: &mut Vec<ExpandedRow>) {
|
fn removePartialRows(pairs: &[ExpandedPair], rows: &mut Vec<ExpandedRow>) {
|
||||||
let row_search = rows.clone();
|
rows.retain(|row| {
|
||||||
for i in 0..row_search.len() {
|
let mut allFound = true;
|
||||||
// for r in rows {
|
if row.getPairs().len() != pairs.len() {
|
||||||
// for (Iterator<ExpandedRow> iterator = rows.iterator(); iterator.hasNext();) {
|
for p in row.getPairs() {
|
||||||
// ExpandedRow r = iterator.next();
|
|
||||||
let r = row_search.get(i).unwrap();
|
|
||||||
if r.getPairs().len() != pairs.len() {
|
|
||||||
let mut allFound = true;
|
|
||||||
for p in r.getPairs() {
|
|
||||||
// for (ExpandedPair p : r.getPairs()) {
|
// for (ExpandedPair p : r.getPairs()) {
|
||||||
if !pairs.contains(p) {
|
if !pairs.contains(p) {
|
||||||
allFound = false;
|
allFound = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if allFound {
|
!allFound
|
||||||
// 'pairs' contains all the pairs from the row 'r'
|
} else {
|
||||||
// iterator.remove();
|
true
|
||||||
rows.remove(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
// let row_search = rows.clone();
|
||||||
|
// for i in 0..row_search.len() {
|
||||||
|
// // for r in rows {
|
||||||
|
// // for (Iterator<ExpandedRow> iterator = rows.iterator(); iterator.hasNext();) {
|
||||||
|
// // ExpandedRow r = iterator.next();
|
||||||
|
// let r = row_search.get(i).unwrap();
|
||||||
|
// if r.getPairs().len() != pairs.len() {
|
||||||
|
// let mut allFound = true;
|
||||||
|
// for p in r.getPairs() {
|
||||||
|
// // for (ExpandedPair p : r.getPairs()) {
|
||||||
|
// if !pairs.contains(p) {
|
||||||
|
// allFound = false;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if allFound {
|
||||||
|
// // 'pairs' contains all the pairs from the row 'r'
|
||||||
|
// // iterator.remove();
|
||||||
|
// rows.remove(i);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true when one of the rows already contains all the pairs
|
// Returns true when one of the rows already contains all the pairs
|
||||||
|
|||||||
Reference in New Issue
Block a user