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§
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)
Sourcefn 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 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