diff --git a/src/common/status.rs b/src/common/status.rs index 6c76a45..5e72722 100644 --- a/src/common/status.rs +++ b/src/common/status.rs @@ -93,18 +93,18 @@ pub fn generate_status_info( let mut meta_plugin_info = Vec::new(); - // Sort meta plugin types by their meta name + // Sort meta plugin types by their string representation to avoid creating plugins just for sorting let mut sorted_meta_plugins: Vec = MetaPluginType::iter().collect(); - sorted_meta_plugins.sort_by_key(|meta_plugin_type| { - let mut meta_plugin = meta_plugin::get_meta_plugin(meta_plugin_type.clone()); - meta_plugin.meta_name() - }); + sorted_meta_plugins.sort_by_key(|meta_plugin_type| meta_plugin_type.to_string()); for meta_plugin_type in sorted_meta_plugins { let mut meta_plugin = meta_plugin::get_meta_plugin(meta_plugin_type.clone()); let is_supported = meta_plugin.is_supported(); let is_enabled = enabled_meta_plugins.contains(&meta_plugin_type); + // Get meta name first to avoid borrowing issues + let meta_name = meta_plugin.meta_name(); + // Note: In status mode we don't have access to actual settings, // so we can't configure plugins with their settings here. // Plugin configuration happens during save operations. @@ -137,7 +137,7 @@ pub fn generate_status_info( }; meta_plugin_info.push(MetaPluginInfo { - meta_name: meta_plugin.meta_name(), + meta_name, found: is_supported, enabled: is_enabled, binary: binary_display, diff --git a/src/meta_plugin/program.rs b/src/meta_plugin/program.rs index 710be76..83ec79d 100644 --- a/src/meta_plugin/program.rs +++ b/src/meta_plugin/program.rs @@ -41,7 +41,7 @@ impl MetaPluginProgram { args: Vec<&str>, meta_name: String, split_whitespace: bool, - options: Option>, + _options: Option>, outputs: Option>, ) -> MetaPluginProgram { let program_path = which(program);