refactor: consolidate user-related plugins into single UserMetaPlugin

Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-26 17:55:18 -03:00
parent bedf000632
commit 77bd3f09a3
3 changed files with 89 additions and 381 deletions

View File

@@ -7,11 +7,8 @@ use std::collections::HashMap;
#[derive(Debug, Clone, Default)]
pub struct BinaryMetaPlugin {
meta_name: String,
buffer: Vec<u8>,
max_buffer_size: usize,
is_saved: bool,
item_id: Option<i64>,
base: crate::meta_plugin::BaseMetaPlugin,
}
@@ -20,41 +17,23 @@ impl BinaryMetaPlugin {
options: Option<std::collections::HashMap<String, serde_yaml::Value>>,
outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>,
) -> BinaryMetaPlugin {
// Start with default options
let mut final_options = std::collections::HashMap::new();
final_options.insert("max_buffer_size".to_string(), serde_yaml::Value::Number(4096.into()));
if let Some(opts) = options {
for (key, value) in opts {
final_options.insert(key, value);
}
}
let mut base = crate::meta_plugin::BaseMetaPlugin::new();
base.meta_name = "binary".to_string();
// Start with default outputs
let mut final_outputs = std::collections::HashMap::new();
let default_outputs = vec!["binary".to_string()];
for output_name in default_outputs {
final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name));
}
if let Some(outs) = outputs {
for (key, value) in outs {
final_outputs.insert(key, value);
}
}
// Initialize with helper function
base.initialize_plugin(
&["binary"],
options,
outputs,
);
let max_buffer_size = final_options.get("max_buffer_size")
let max_buffer_size = base.options.get("max_buffer_size")
.and_then(|v| v.as_u64())
.unwrap_or(PIPESIZE as u64) as usize;
let mut base = crate::meta_plugin::BaseMetaPlugin::new();
base.outputs = final_outputs;
base.options = final_options;
BinaryMetaPlugin {
meta_name: "binary".to_string(),
buffer: Vec::new(),
max_buffer_size,
is_saved: false,
item_id: None,
base,
}
}
@@ -62,7 +41,6 @@ impl BinaryMetaPlugin {
pub fn new_simple() -> BinaryMetaPlugin {
Self::new(None, None)
}
}
impl MetaPlugin for BinaryMetaPlugin {
@@ -123,7 +101,7 @@ impl MetaPlugin for BinaryMetaPlugin {
}
fn meta_name(&self) -> String {
self.meta_name.clone()
self.base.meta_name.clone()
}
fn outputs(&self) -> &std::collections::HashMap<String, serde_yaml::Value> {