Lines Matching refs:ro
37 ro: Arc<ExecReadOnly>,
55 ro: &'c Arc<ExecReadOnly>,
303 let ro = Arc::new(ExecReadOnly {
313 let pool = ExecReadOnly::new_pool(&ro);
314 return Ok(Exec { ro, pool });
341 let mut ro = ExecReadOnly {
351 ro.match_type = ro.choose_match_type(self.match_type);
353 let ro = Arc::new(ro);
354 let pool = ExecReadOnly::new_pool(&ro);
355 Ok(Exec { ro, pool })
428 self.ro.nfa.captures.len() * 2
442 match self.ro.match_type {
458 &self.ro.dfa_reverse,
494 match self.ro.match_type {
510 &self.ro.dfa_reverse,
541 match self.ro.match_type {
615 match self.ro.match_type {
630 if self.ro.nfa.is_anchored_start {
701 let lits = &self.ro.nfa.prefixes;
705 let lits = &self.ro.nfa.prefixes;
706 if start == 0 || !self.ro.nfa.is_anchored_start {
714 let lits = &self.ro.suffixes;
719 .ro
741 &self.ro.dfa,
754 &self.ro.dfa_reverse,
781 &self.ro.dfa_reverse,
797 dfa::Fsm::forward(&self.ro.dfa, self.cache.value(), true, text, start)
837 let lcs = self.ro.suffixes.lcs();
849 &self.ro.dfa_reverse,
895 &self.ro.dfa,
1053 if backtrack::should_exec(self.ro.nfa.len(), text.len()) {
1086 if self.ro.nfa.uses_bytes() {
1088 &self.ro.nfa,
1093 ByteInput::new(text, self.ro.nfa.only_utf8),
1099 &self.ro.nfa,
1120 if self.ro.nfa.uses_bytes() {
1122 &self.ro.nfa,
1126 ByteInput::new(text, self.ro.nfa.only_utf8),
1132 &self.ro.nfa,
1160 match self.ro.match_type {
1170 &self.ro.dfa,
1193 &self.ro.dfa,
1235 fn imp(ro: &ExecReadOnly, text: &[u8]) -> bool {
1237 if text.len() > (1 << 20) && ro.nfa.is_anchored_end {
1238 let lcs = ro.suffixes.lcs();
1246 imp(&self.ro, text)
1250 &self.ro.nfa.capture_name_idx
1265 ro: &self.ro, // a clone is too expensive here! (and not needed)
1299 &self.ro.res
1306 &self.ro.nfa.captures
1312 &self.ro.nfa.capture_name_idx
1318 let pool = ExecReadOnly::new_pool(&self.ro);
1319 Exec { ro: self.ro.clone(), pool }
1351 fn imp(ro: &ExecReadOnly) -> Option<MatchType> {
1363 if ro.res.len() != 1 {
1366 if ro.ac.is_some() {
1371 if ro.nfa.prefixes.complete() {
1372 return if ro.nfa.is_anchored_start {
1378 if ro.suffixes.complete() {
1379 return if ro.nfa.is_anchored_end {
1402 fn imp(ro: &ExecReadOnly) -> Option<MatchType> {
1403 if !dfa::can_exec(&ro.dfa) {
1407 if ro.res.len() >= 2 {
1412 if !ro.nfa.is_anchored_start && ro.nfa.is_anchored_end {
1419 if ro.should_suffix_scan() {
1453 fn new_pool(ro: &Arc<ExecReadOnly>) -> Box<Pool<ProgramCache>> {
1454 let ro = ro.clone();
1456 AssertUnwindSafe(RefCell::new(ProgramCacheInner::new(&ro)))
1534 fn new(ro: &ExecReadOnly) -> Self {
1536 pikevm: pikevm::Cache::new(&ro.nfa),
1537 backtrack: backtrack::Cache::new(&ro.nfa),
1539 dfa: dfa::Cache::new(&ro.dfa),
1541 dfa_reverse: dfa::Cache::new(&ro.dfa_reverse),