Trait CompiledRule

Source
pub trait CompiledRule: Send + Sync {
    // Required method
    fn get_string_matches(
        &self,
        content: &str,
        path: &Path<'_>,
        regex_caches: &mut RegexCaches,
        per_string_data: &mut SharedData,
        per_scanner_data: &SharedData,
        per_event_data: &mut SharedData,
        exclusion_check: &ExclusionCheck<'_>,
        excluded_matches: &mut AHashSet<String>,
        match_emitter: &mut dyn MatchEmitter,
        wildcard_indices: Option<&Vec<(usize, usize)>>,
    );

    // Provided methods
    fn init_per_scanner_data(&self, _per_scanner_data: &mut SharedData) { ... }
    fn init_per_string_data(
        &self,
        _labels: &Labels,
        _per_string_data: &mut SharedData,
    ) { ... }
    fn init_per_event_data(&self, _per_event_data: &mut SharedData) { ... }
    fn has_string_match(
        &self,
        content: &str,
        path: &Path<'_>,
        regex_caches: &mut RegexCaches,
        per_string_data: &mut SharedData,
        per_scanner_data: &SharedData,
        per_event_data: &mut SharedData,
        exclusion_check: &ExclusionCheck<'_>,
        excluded_matches: &mut AHashSet<String>,
        wildcard_indices: Option<&Vec<(usize, usize)>>,
    ) -> bool { ... }
    fn should_exclude_multipass_v0(&self) -> bool { ... }
    fn on_excluded_match_multipass_v0(&self) { ... }
}

Required Methods§

Source

fn get_string_matches( &self, content: &str, path: &Path<'_>, regex_caches: &mut RegexCaches, per_string_data: &mut SharedData, per_scanner_data: &SharedData, per_event_data: &mut SharedData, exclusion_check: &ExclusionCheck<'_>, excluded_matches: &mut AHashSet<String>, match_emitter: &mut dyn MatchEmitter, wildcard_indices: Option<&Vec<(usize, usize)>>, )

Provided Methods§

Source

fn init_per_scanner_data(&self, _per_scanner_data: &mut SharedData)

Source

fn init_per_string_data( &self, _labels: &Labels, _per_string_data: &mut SharedData, )

Source

fn init_per_event_data(&self, _per_event_data: &mut SharedData)

Source

fn has_string_match( &self, content: &str, path: &Path<'_>, regex_caches: &mut RegexCaches, per_string_data: &mut SharedData, per_scanner_data: &SharedData, per_event_data: &mut SharedData, exclusion_check: &ExclusionCheck<'_>, excluded_matches: &mut AHashSet<String>, wildcard_indices: Option<&Vec<(usize, usize)>>, ) -> bool

Determines if this rule has a match, without determining the exact position, or finding multiple matches. The default implementation just calls get_string_matches, but this can be overridden with a more efficient implementation if applicable

Source

fn should_exclude_multipass_v0(&self) -> bool

Source

fn on_excluded_match_multipass_v0(&self)

Implementors§