fix: Use function pointers for filter plugin registration
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -52,15 +52,48 @@ impl FilterService {
|
||||
pub fn get_available_filter_plugins() -> HashMap<String, fn() -> Box<dyn crate::filter_plugin::FilterPlugin>> {
|
||||
let mut plugins = HashMap::new();
|
||||
|
||||
// Register all available filter plugins
|
||||
plugins.insert("head_bytes".to_string(), || Box::new(crate::filter_plugin::head::HeadBytesFilter::new(0)));
|
||||
plugins.insert("head_lines".to_string(), || Box::new(crate::filter_plugin::head::HeadLinesFilter::new(0)));
|
||||
plugins.insert("tail_bytes".to_string(), || Box::new(crate::filter_plugin::tail::TailBytesFilter::new(0)));
|
||||
plugins.insert("tail_lines".to_string(), || Box::new(crate::filter_plugin::tail::TailLinesFilter::new(0)));
|
||||
plugins.insert("skip_bytes".to_string(), || Box::new(crate::filter_plugin::skip::SkipBytesFilter::new(0)));
|
||||
plugins.insert("skip_lines".to_string(), || Box::new(crate::filter_plugin::skip::SkipLinesFilter::new(0)));
|
||||
plugins.insert("grep".to_string(), || Box::new(crate::filter_plugin::grep::GrepFilter::new("".to_string()).unwrap()));
|
||||
plugins.insert("strip_ansi".to_string(), || Box::new(crate::filter_plugin::strip_ansi::StripAnsiFilter::new()));
|
||||
// Register all available filter plugins using function pointers
|
||||
plugins.insert("head_bytes".to_string(), create_head_bytes_filter);
|
||||
plugins.insert("head_lines".to_string(), create_head_lines_filter);
|
||||
plugins.insert("tail_bytes".to_string(), create_tail_bytes_filter);
|
||||
plugins.insert("tail_lines".to_string(), create_tail_lines_filter);
|
||||
plugins.insert("skip_bytes".to_string(), create_skip_bytes_filter);
|
||||
plugins.insert("skip_lines".to_string(), create_skip_lines_filter);
|
||||
plugins.insert("grep".to_string(), create_grep_filter);
|
||||
plugins.insert("strip_ansi".to_string(), create_strip_ansi_filter);
|
||||
|
||||
plugins
|
||||
}
|
||||
|
||||
// Helper functions to create each filter plugin
|
||||
fn create_head_bytes_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::head::HeadBytesFilter::new(0))
|
||||
}
|
||||
|
||||
fn create_head_lines_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::head::HeadLinesFilter::new(0))
|
||||
}
|
||||
|
||||
fn create_tail_bytes_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::tail::TailBytesFilter::new(0))
|
||||
}
|
||||
|
||||
fn create_tail_lines_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::tail::TailLinesFilter::new(0))
|
||||
}
|
||||
|
||||
fn create_skip_bytes_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::skip::SkipBytesFilter::new(0))
|
||||
}
|
||||
|
||||
fn create_skip_lines_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::skip::SkipLinesFilter::new(0))
|
||||
}
|
||||
|
||||
fn create_grep_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::grep::GrepFilter::new("".to_string()).unwrap())
|
||||
}
|
||||
|
||||
fn create_strip_ansi_filter() -> Box<dyn crate::filter_plugin::FilterPlugin> {
|
||||
Box::new(crate::filter_plugin::strip_ansi::StripAnsiFilter::new())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user