feat: update meta plugin constructors to accept options and outputs

Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-19 13:56:33 -03:00
parent b4d40f01e8
commit 81397c1319
6 changed files with 399 additions and 55 deletions

View File

@@ -14,14 +14,34 @@ pub struct DigestSha256MetaPlugin {
}
impl DigestSha256MetaPlugin {
pub fn new() -> DigestSha256MetaPlugin {
pub fn new(
_options: Option<std::collections::HashMap<String, serde_yaml::Value>>,
outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>,
) -> DigestSha256MetaPlugin {
// Start with default outputs
let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::default_outputs();
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);
}
}
DigestSha256MetaPlugin {
hasher: Sha256::new(),
meta_name: "digest_sha256".to_string(),
item_id: None,
outputs: std::collections::HashMap::new(),
outputs: final_outputs,
}
}
pub fn new_simple() -> DigestSha256MetaPlugin {
Self::new(None, None)
}
}
}
impl MetaPlugin for DigestSha256MetaPlugin {
@@ -80,13 +100,33 @@ pub struct ReadTimeMetaPlugin {
}
impl ReadTimeMetaPlugin {
pub fn new() -> ReadTimeMetaPlugin {
pub fn new(
_options: Option<std::collections::HashMap<String, serde_yaml::Value>>,
outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>,
) -> ReadTimeMetaPlugin {
// Start with default outputs
let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::default_outputs();
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);
}
}
ReadTimeMetaPlugin {
start_time: None,
meta_name: "read_time".to_string(),
outputs: std::collections::HashMap::new(),
outputs: final_outputs,
}
}
pub fn new_simple() -> ReadTimeMetaPlugin {
Self::new(None, None)
}
}
}
impl MetaPlugin for ReadTimeMetaPlugin {
@@ -134,14 +174,34 @@ pub struct ReadRateMetaPlugin {
}
impl ReadRateMetaPlugin {
pub fn new() -> ReadRateMetaPlugin {
pub fn new(
_options: Option<std::collections::HashMap<String, serde_yaml::Value>>,
outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>,
) -> ReadRateMetaPlugin {
// Start with default outputs
let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::default_outputs();
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);
}
}
ReadRateMetaPlugin {
start_time: None,
bytes_read: 0,
meta_name: "read_rate".to_string(),
outputs: std::collections::HashMap::new(),
outputs: final_outputs,
}
}
pub fn new_simple() -> ReadRateMetaPlugin {
Self::new(None, None)
}
}
}
impl MetaPlugin for ReadRateMetaPlugin {