#[repr(C)]pub struct RuleMeta {
pub transition_base: u32,
pub accept_base: u32,
pub state_count: u32,
pub class_map_base: u32,
pub num_classes: u32,
}Expand description
Packed metadata for one byte-class-compressed DFA rule entry.
The on-device transition table is transitions[transition_base + state * num_classes + class_maps[class_map_base + byte]]: each rule carries a
256-entry byte→class map (into the shared class_maps buffer) and a
compressed state_count * num_classes transition block, instead of a dense
state_count * 256 block. The compression is LOSSLESS — bytes share a class
only when their transition column is identical across every state — so GPU
firings are byte-for-byte identical to the dense table.
Fields§
§transition_base: u32Word offset into the flattened (compressed) transition table.
accept_base: u32Word offset into the flattened accept table.
state_count: u32DFA state count for this rule.
class_map_base: u32Word offset into the shared 256-entry-per-rule byte→class map table.
num_classes: u32Number of distinct byte classes for this rule (the compressed row width).
Trait Implementations§
impl Copy for RuleMeta
impl Eq for RuleMeta
impl Pod for RuleMeta
impl StructuralPartialEq for RuleMeta
Auto Trait Implementations§
impl Freeze for RuleMeta
impl RefUnwindSafe for RuleMeta
impl Send for RuleMeta
impl Sync for RuleMeta
impl Unpin for RuleMeta
impl UnsafeUnpin for RuleMeta
impl UnwindSafe for RuleMeta
Blanket Implementations§
impl<T> AnyBitPattern for Twhere
T: Pod,
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> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
Source§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.Source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.