diff --git a/src/common/status.rs b/src/common/status.rs index 8b6896d..e46bddf 100644 --- a/src/common/status.rs +++ b/src/common/status.rs @@ -144,5 +144,6 @@ pub fn generate_status_info( meta_plugins: meta_plugins_map, enabled_meta_plugins: enabled_meta_plugins_vec, filter_plugins: Vec::new(), // Initialize with empty vector + configured_meta_plugins: None, } } diff --git a/src/config.rs b/src/config.rs index af22aae..8e743b8 100644 --- a/src/config.rs +++ b/src/config.rs @@ -65,11 +65,13 @@ pub struct CompressionPluginConfig { pub name: String, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, utoipa::ToSchema)] pub struct MetaPluginConfig { pub name: String, + #[schema(value_type = Object)] #[serde(default)] pub options: std::collections::HashMap, + #[schema(value_type = Object)] #[serde(default)] pub outputs: std::collections::HashMap, } diff --git a/src/filter_plugin/mod.rs b/src/filter_plugin/mod.rs index 818534b..e65bd43 100644 --- a/src/filter_plugin/mod.rs +++ b/src/filter_plugin/mod.rs @@ -11,7 +11,7 @@ pub mod utils; use std::collections::HashMap; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, serde::Serialize)] pub struct FilterOption { pub name: String, pub default: Option, diff --git a/src/modes/status.rs b/src/modes/status.rs index 036c250..b0a32cf 100644 --- a/src/modes/status.rs +++ b/src/modes/status.rs @@ -6,6 +6,7 @@ use log::debug; use crate::modes::common::{get_format_box_chars_no_border_line_separator, OutputFormat}; use crate::config; +use crate::common::status::StatusInfo; use prettytable::color; use serde_json; use serde_yaml; diff --git a/src/modes/status_plugins.rs b/src/modes/status_plugins.rs index a1185ec..4399cec 100644 --- a/src/modes/status_plugins.rs +++ b/src/modes/status_plugins.rs @@ -163,12 +163,8 @@ fn build_filter_plugin_table(filter_plugins: &Vec) -> Table { .to_string() }; - // Get description from the first option or use a default - let description = if let Some(first_opt) = options.first() { - first_opt.description.clone().unwrap_or_else(|| "Filter plugin".to_string()) - } else { - "Filter plugin".to_string() - }; + // Use a default description + let description = "Filter plugin".to_string(); filter_plugin_table.add_row(Row::new(vec![ Cell::new(&plugin_name),