pub trait VxPlugin: Send + Sync {
// Required method
fn name(&self) -> &str;
// Provided methods
fn description(&self) -> &str { ... }
fn version(&self) -> &str { ... }
fn tools(&self) -> Vec<Box<dyn VxTool>> { ... }
fn package_managers(&self) -> Vec<Box<dyn VxPackageManager>> { ... }
fn initialize<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn supports_tool(&self, tool_name: &str) -> bool { ... }
fn supports_package_manager(&self, pm_name: &str) -> bool { ... }
fn metadata(&self) -> HashMap<String, String> { ... }
}Expand description
Combined plugin trait that can provide both tools and package managers
This is the main trait that plugin developers implement to register their functionality.
Required Methods§
Provided Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
Plugin description (optional)
Sourcefn package_managers(&self) -> Vec<Box<dyn VxPackageManager>>
fn package_managers(&self) -> Vec<Box<dyn VxPackageManager>>
Get all package managers provided by this plugin
Sourcefn initialize<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn initialize<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Initialize the plugin (optional)
Sourcefn supports_tool(&self, tool_name: &str) -> bool
fn supports_tool(&self, tool_name: &str) -> bool
Check if this plugin supports a specific tool
Sourcefn supports_package_manager(&self, pm_name: &str) -> bool
fn supports_package_manager(&self, pm_name: &str) -> bool
Check if this plugin supports a specific package manager