Skip to content

Commit b16f7c0

Browse files
committed
Refactoring
1 parent adcc2dd commit b16f7c0

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/lib.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -693,9 +693,8 @@ impl DoubleArrayAhoCorasickBuilder {
693693
for &(c, orig_child_idx) in &sparse_trie.nodes[orig_node_idx] {
694694
let child_idx = self.get_child_index(node_idx, c).unwrap();
695695
let mut fail_idx = self.fail[node_idx];
696-
loop {
696+
self.fail[child_idx] = loop {
697697
if let Some(child_fail_idx) = self.get_child_index(fail_idx, c) {
698-
self.fail[child_idx] = child_fail_idx;
699698
if self.pattern_ids[child_fail_idx] != std::usize::MAX {
700699
if self.pattern_ids[child_idx] == std::usize::MAX {
701700
self.pattern_ids[child_idx] = self.pattern_ids[child_fail_idx];
@@ -707,15 +706,14 @@ impl DoubleArrayAhoCorasickBuilder {
707706
self.cs_pattern_ids[child_pattern_id].append(&mut fail_ids);
708707
}
709708
}
710-
break;
709+
break child_fail_idx;
711710
}
712711
let next_fail_idx = self.fail[fail_idx];
713712
if fail_idx == 0 && next_fail_idx == 0 {
714-
self.fail[child_idx] = 0;
715-
break;
713+
break 0;
716714
}
717715
fail_idx = next_fail_idx;
718-
}
716+
};
719717
queue.push_back((child_idx, orig_child_idx));
720718
}
721719
}
@@ -826,7 +824,7 @@ mod tests {
826824

827825
// daachorse
828826
let mut actual = HashSet::new();
829-
let patterns_vec: Vec<_> = patterns.iter().cloned().collect();
827+
let patterns_vec: Vec<_> = patterns.into_iter().collect();
830828
let pma = DoubleArrayAhoCorasick::new(&patterns_vec).unwrap();
831829
for m in pma.find_iter(&haystack) {
832830
actual.insert((m.start(), m.end(), patterns_vec[m.pattern()].clone()));
@@ -857,7 +855,7 @@ mod tests {
857855

858856
// daachorse
859857
let mut actual = HashSet::new();
860-
let patterns_vec: Vec<_> = patterns.iter().cloned().collect();
858+
let patterns_vec: Vec<_> = patterns.into_iter().collect();
861859
let pma = DoubleArrayAhoCorasick::new(&patterns_vec).unwrap();
862860
for m in pma.find_overlapping_iter(&haystack) {
863861
actual.insert((m.start(), m.end(), patterns_vec[m.pattern()].clone()));

0 commit comments

Comments
 (0)