pub struct PatternRegistry { /* private fields */ }Expand description
Central registry for conversation patterns.
Manages a collection of patterns organized by type, supports pattern learning, and persistence. All patterns are learned from conversations, no hardcoded presets are loaded.
Implementations§
Source§impl PatternRegistry
impl PatternRegistry
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new empty pattern registry.
All patterns are learned from conversations, no presets are loaded.
Sourcepub fn with_config(config: PatternRegistryConfig) -> Self
pub fn with_config(config: PatternRegistryConfig) -> Self
Create a registry with custom configuration.
All patterns are learned from conversations, no presets are loaded.
Sourcepub fn add_pattern(&mut self, pattern: ConversationPattern)
pub fn add_pattern(&mut self, pattern: ConversationPattern)
Add a new pattern to the registry.
Sourcepub fn add_patterns(&mut self, patterns: Vec<ConversationPattern>)
pub fn add_patterns(&mut self, patterns: Vec<ConversationPattern>)
Add multiple patterns at once.
Sourcepub fn learn_patterns(&mut self, patterns: &[ConversationPattern])
pub fn learn_patterns(&mut self, patterns: &[ConversationPattern])
Learn patterns from a list of detected patterns.
Existing patterns have their frequency incremented; new patterns are added with initial confidence.
Sourcepub fn get_active_patterns(&self) -> Vec<&ConversationPattern>
pub fn get_active_patterns(&self) -> Vec<&ConversationPattern>
Get all active patterns.
Sourcepub fn get_active_patterns_by_type(
&self,
pattern_type: PatternType,
) -> Vec<&ConversationPattern>
pub fn get_active_patterns_by_type( &self, pattern_type: PatternType, ) -> Vec<&ConversationPattern>
Get active patterns of a specific type.
Sourcepub fn get_active_reference_patterns(&self) -> Vec<String>
pub fn get_active_reference_patterns(&self) -> Vec<String>
Get all active reference patterns.
Sourcepub fn get_active_code_patterns(&self) -> Vec<String>
pub fn get_active_code_patterns(&self) -> Vec<String>
Get all active code patterns.
Sourcepub fn get_pattern(&self, id: &str) -> Option<&ConversationPattern>
pub fn get_pattern(&self, id: &str) -> Option<&ConversationPattern>
Get pattern by ID.
Sourcepub fn get_pattern_by_pattern(
&self,
pattern: &str,
) -> Option<&ConversationPattern>
pub fn get_pattern_by_pattern( &self, pattern: &str, ) -> Option<&ConversationPattern>
Get pattern by pattern string.
Sourcepub fn get_pattern_mut(&mut self, id: &str) -> Option<&mut ConversationPattern>
pub fn get_pattern_mut(&mut self, id: &str) -> Option<&mut ConversationPattern>
Get pattern by ID for mutation.
Sourcepub fn deactivate_pattern(&mut self, id: &str) -> bool
pub fn deactivate_pattern(&mut self, id: &str) -> bool
Deactivate a pattern by ID.
Sourcepub fn activate_pattern(&mut self, id: &str) -> bool
pub fn activate_pattern(&mut self, id: &str) -> bool
Activate a pattern by ID.
Sourcepub fn remove_pattern(&mut self, id: &str) -> bool
pub fn remove_pattern(&mut self, id: &str) -> bool
Remove a pattern by ID.
Sourcepub fn count_by_type(&self, pattern_type: PatternType) -> usize
pub fn count_by_type(&self, pattern_type: PatternType) -> usize
Get pattern count by type.
Sourcepub fn active_count_by_type(&self, pattern_type: PatternType) -> usize
pub fn active_count_by_type(&self, pattern_type: PatternType) -> usize
Get active pattern count by type.
Sourcepub fn all_patterns(&self) -> &[ConversationPattern]
pub fn all_patterns(&self) -> &[ConversationPattern]
Get all patterns (for serialization).
Sourcepub fn stats(&self) -> PatternRegistryStats
pub fn stats(&self) -> PatternRegistryStats
Get statistics about the registry.
Sourcepub fn get_patterns_file_path() -> Result<PathBuf>
pub fn get_patterns_file_path() -> Result<PathBuf>
Get the default patterns file path (~/.matrix/patterns.json).
Sourcepub fn from_file(path: &Path) -> Result<Self>
pub fn from_file(path: &Path) -> Result<Self>
Load patterns from a JSON file.
If the file doesn’t exist, returns an empty registry. If the file exists but is empty or malformed, returns an empty registry.
Sourcepub fn from_default_file() -> Result<Self>
pub fn from_default_file() -> Result<Self>
Load patterns from the default file path (~/.matrix/patterns.json).
Sourcepub fn save_to_file(&self, path: &Path) -> Result<()>
pub fn save_to_file(&self, path: &Path) -> Result<()>
Save patterns to a JSON file.
Creates the parent directory if it doesn’t exist. Uses atomic write (write to temp file, then rename) for safety.
Sourcepub fn save_to_default_file(&self) -> Result<()>
pub fn save_to_default_file(&self) -> Result<()>
Save patterns to the default file path (~/.matrix/patterns.json).
Trait Implementations§
Source§impl Clone for PatternRegistry
impl Clone for PatternRegistry
Source§fn clone(&self) -> PatternRegistry
fn clone(&self) -> PatternRegistry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more