pub trait PatternProvider: Send + Sync {
// Required methods
fn get_patterns(&self) -> Vec<Pattern>;
fn add_pattern(&mut self, pattern: PatternDef) -> AnalysisResult<()>;
fn remove_pattern(&mut self, name: &str) -> AnalysisResult<()>;
fn update_pattern(&mut self, pattern: PatternDef) -> AnalysisResult<()>;
}Expand description
Provider interface for validated analysis patterns.
Required Methods§
Sourcefn get_patterns(&self) -> Vec<Pattern>
fn get_patterns(&self) -> Vec<Pattern>
Return a snapshot of all patterns in evaluation order.
Sourcefn add_pattern(&mut self, pattern: PatternDef) -> AnalysisResult<()>
fn add_pattern(&mut self, pattern: PatternDef) -> AnalysisResult<()>
Validate and add a uniquely named pattern.
Sourcefn remove_pattern(&mut self, name: &str) -> AnalysisResult<()>
fn remove_pattern(&mut self, name: &str) -> AnalysisResult<()>
Remove an existing pattern by name.
Sourcefn update_pattern(&mut self, pattern: PatternDef) -> AnalysisResult<()>
fn update_pattern(&mut self, pattern: PatternDef) -> AnalysisResult<()>
Atomically validate and replace an existing pattern by name.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".