pub trait Plugin {
// Required methods
fn manifest(&self) -> &PluginManifest;
fn available_versions(
&self,
args: &[String],
) -> PluginResult<Vec<AvailableVersion>>;
fn install_plan(&self, version: &str) -> PluginResult<InstallPlan>;
fn env_keys(&self, runtime: &InstalledRuntime) -> PluginResult<Vec<EnvKey>>;
fn parse_legacy_file(
&self,
file_name: &str,
content: &str,
) -> PluginResult<Option<String>>;
// Provided methods
fn post_install(&self, _runtime: &InstalledRuntime) -> PluginResult<()> { ... }
fn pre_use(
&self,
_requested_version: &str,
_scope: &str,
_cwd: &Path,
_previous_version: Option<&str>,
_installed: &[InstalledRuntime],
) -> PluginResult<Option<String>> { ... }
}Expand description
Common runtime interface used by the application layer.
Required Methods§
Sourcefn manifest(&self) -> &PluginManifest
fn manifest(&self) -> &PluginManifest
Returns the immutable plugin manifest.
Sourcefn available_versions(
&self,
args: &[String],
) -> PluginResult<Vec<AvailableVersion>>
fn available_versions( &self, args: &[String], ) -> PluginResult<Vec<AvailableVersion>>
Lists versions that the plugin can install.
Sourcefn install_plan(&self, version: &str) -> PluginResult<InstallPlan>
fn install_plan(&self, version: &str) -> PluginResult<InstallPlan>
Builds an install plan for the requested version.
Sourcefn env_keys(&self, runtime: &InstalledRuntime) -> PluginResult<Vec<EnvKey>>
fn env_keys(&self, runtime: &InstalledRuntime) -> PluginResult<Vec<EnvKey>>
Returns environment keys that should be exported for the installed version.
Sourcefn parse_legacy_file(
&self,
file_name: &str,
content: &str,
) -> PluginResult<Option<String>>
fn parse_legacy_file( &self, file_name: &str, content: &str, ) -> PluginResult<Option<String>>
Attempts to map a legacy file content to a version.
Provided Methods§
Sourcefn post_install(&self, _runtime: &InstalledRuntime) -> PluginResult<()>
fn post_install(&self, _runtime: &InstalledRuntime) -> PluginResult<()>
Runs optional post-install logic after artifacts are materialized.