Struct StandardPlugin

Source
pub struct StandardPlugin { /* private fields */ }
Expand description

Standard plugin implementation for single-tool plugins

This is a convenience implementation for plugins that provide a single tool. It handles the boilerplate of implementing VxPlugin for simple cases.

Implementations§

Source§

impl StandardPlugin

Source

pub fn new<F>( name: impl Into<String>, description: impl Into<String>, version: impl Into<String>, tool_factory: F, ) -> Self
where F: Fn() -> Box<dyn VxTool> + Send + Sync + 'static,

Create a new standard plugin

§Arguments
  • name - Plugin name
  • description - Plugin description
  • version - Plugin version
  • tool_factory - Factory function that creates the tool instance
Source

pub fn with_author(self, author: impl Into<String>) -> Self

Set the plugin author

Source

pub fn with_homepage(self, homepage: impl Into<String>) -> Self

Set the plugin homepage

Trait Implementations§

Source§

impl VxPlugin for StandardPlugin

Source§

fn name(&self) -> &str

Plugin name (required) Read more
Source§

fn description(&self) -> &str

Plugin description (optional) Read more
Source§

fn version(&self) -> &str

Plugin version (optional) Read more
Source§

fn author(&self) -> Option<&str>

Plugin author (optional) Read more
Source§

fn homepage(&self) -> Option<&str>

Plugin homepage or repository URL (optional) Read more
Source§

fn tools(&self) -> Vec<Box<dyn VxTool>>

Get all tools provided by this plugin Read more
Source§

fn package_managers(&self) -> Vec<Box<dyn VxPackageManager>>

Get all package managers provided by this plugin Read more
Source§

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) Read more
Source§

fn shutdown<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Shutdown the plugin (optional) Read more
Source§

fn supports_tool(&self, tool_name: &str) -> bool

Check if this plugin supports a specific tool Read more
Source§

fn supports_package_manager(&self, pm_name: &str) -> bool

Check if this plugin supports a specific package manager Read more
Source§

fn get_tool(&self, tool_name: &str) -> Option<Box<dyn VxTool>>

Get a specific tool by name Read more
Source§

fn get_package_manager( &self, pm_name: &str, ) -> Option<Box<dyn VxPackageManager>>

Get a specific package manager by name Read more
Source§

fn is_compatible_with(&self, vx_version: &str) -> bool

Check plugin compatibility with the current vx version Read more
Source§

fn dependencies(&self) -> Vec<&str>

Get plugin dependencies Read more
Source§

fn config_schema(&self) -> Option<Value>

Get plugin configuration schema Read more
Source§

fn validate_config(&self, _config: &Value) -> Result<()>

Validate plugin configuration Read more
Source§

fn metadata(&self) -> HashMap<String, String>

Additional metadata for the plugin (optional) Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.