pub struct CompiledRegexSet {
pub plan: NfaPlan,
pub transition_table: Vec<u32>,
pub epsilon_table: Vec<u32>,
pub pattern_extents: Vec<RegexPatternExtent>,
pub captures_present: bool,
}Expand description
Output of compile_regex_set - same triple shape as the literal
nfa::compile returns plus the GPU side-tables nfa::nfa_scan
expects, so consumers can plug this into ScanProgram without
changing the dispatch path.
Fields§
§plan: NfaPlanState graph + accept-state metadata.
transition_table: Vec<u32>Lane-major byte→bitset transition table:
[num_states × 256 × LANES_PER_SUBGROUP] u32s.
epsilon_table: Vec<u32>Lane-major epsilon (free) transition table:
[num_states × LANES_PER_SUBGROUP] u32s.
pattern_extents: Vec<RegexPatternExtent>Per-pattern accepted extent and finite accelerator replay budget.
max_bytes == None makes the truncation boundary explicit for an
open-ended regex rather than presenting its minimum as a false maximum.
captures_present: booltrue when at least one source pattern contained a capture group.
The GPU NFA is a WHOLE-MATCH multimatch engine: it accelerates the
match decision but does NOT prove submatch (capture) spans, capture
groups are stripped during lowering (whole-match still compiles and
runs correctly). A consumer that needs submatch offsets must route
these patterns to the scalar verifier; this flag is the distinct signal
for the VYRE_SCAN_CAPTURE_EXTRACTION_REQUIRES_VERIFIER diagnostic
(see regex_construct_diagnostic_code) WITHOUT rejecting the pattern
(making captures a compile error would regress whole-match acceleration).
Implementations§
Source§impl CompiledRegexSet
impl CompiledRegexSet
Sourcepub fn capture_extraction_diagnostic_code(&self) -> Option<&'static str>
pub fn capture_extraction_diagnostic_code(&self) -> Option<&'static str>
The REGEX_UNSUPPORTED_DIAGNOSTICS.toml code a consumer routes on when
it needs submatch (capture) spans this whole-match GPU engine does not
prove, or None when the compiled set has no capture groups.
This is NOT an error: the set compiled and scans correctly for the whole-match decision. The code tells a consumer that wants capture offsets to run the scalar capture verifier for these patterns.
Trait Implementations§
Source§impl Clone for CompiledRegexSet
impl Clone for CompiledRegexSet
Source§fn clone(&self) -> CompiledRegexSet
fn clone(&self) -> CompiledRegexSet
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for CompiledRegexSet
impl RefUnwindSafe for CompiledRegexSet
impl Send for CompiledRegexSet
impl Sync for CompiledRegexSet
impl Unpin for CompiledRegexSet
impl UnsafeUnpin for CompiledRegexSet
impl UnwindSafe for CompiledRegexSet
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more