mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 04:12:34 +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> {
|
||||
let mut result: Vec<State> = Vec::new();
|
||||
for newState in states {
|
||||
// for (State newState : states) {
|
||||
let mut add = true;
|
||||
for i in 0..result.len() {
|
||||
// for st in result {
|
||||
// for (Iterator<State> iterator = result.iterator(); iterator.hasNext();) {
|
||||
if let Some(oldState) = result.get(i) {
|
||||
if oldState.isBetterThanOrEqualTo(&newState) {
|
||||
add = false;
|
||||
break;
|
||||
}
|
||||
if newState.isBetterThanOrEqualTo(oldState) {
|
||||
result.remove(i);
|
||||
}
|
||||
}
|
||||
let add = result
|
||||
.iter()
|
||||
.fold(true, |acc, s| !s.isBetterThanOrEqualTo(&newState) && acc);
|
||||
if add {
|
||||
result.retain(|s| !newState.isBetterThanOrEqualTo(s));
|
||||
}
|
||||
if add {
|
||||
result.push(newState);
|
||||
|
||||
@@ -491,28 +491,43 @@ impl RSSExpandedReader {
|
||||
|
||||
// Remove all the rows that contains only specified pairs
|
||||
fn removePartialRows(pairs: &[ExpandedPair], rows: &mut Vec<ExpandedRow>) {
|
||||
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() {
|
||||
rows.retain(|row| {
|
||||
let mut allFound = true;
|
||||
if row.getPairs().len() != pairs.len() {
|
||||
for p in row.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);
|
||||
}
|
||||
!allFound
|
||||
} else {
|
||||
true
|
||||
}
|
||||
}
|
||||
});
|
||||
// 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
|
||||
|
||||
Reference in New Issue
Block a user