use super::super::phase2::gate_prefix_literals;
use crate::types::CompiledPattern;
pub(super) fn prefixless_always_active_candidates(
phase2_patterns: &[(CompiledPattern, Vec<String>)],
always_active_indices: &[usize],
) -> Vec<usize> {
let mut candidates = Vec::with_capacity(always_active_indices.len());
for &idx in always_active_indices {
let (pattern, _) = &phase2_patterns[idx];
if gate_prefix_literals(pattern.regex.as_str()).is_none() {
candidates.push(idx);
}
}
candidates
}
pub(super) fn ascii_phase2_gpu_dfa_candidates(
phase2_patterns: &[(CompiledPattern, Vec<String>)],
candidates: &[usize],
) -> Vec<usize> {
candidates
.iter()
.copied()
.filter(|&idx| !phase2_patterns[idx].0.homoglyph_variant)
.collect()
}