Trait Configuration

Source
pub trait Configuration: Send + Sync {
    // Required methods
    fn get_global_tool_version(&self, tool_name: &str) -> Option<String>;
    fn set_global_tool_version(
        &self,
        tool_name: &str,
        version: String,
    ) -> Result<()>;
    fn get_project_tool_version(
        &self,
        tool_name: &str,
        project_path: &Path,
    ) -> Option<String>;
    fn set_project_tool_version(
        &self,
        tool_name: &str,
        version: String,
        project_path: &Path,
    ) -> Result<()>;
    fn get_active_environment(&self) -> Option<String>;
    fn set_active_environment(&self, env_name: Option<String>) -> Result<()>;
    fn resolve_tool_version(
        &self,
        tool_name: &str,
        cli_version: Option<&str>,
        project_path: Option<&Path>,
    ) -> Option<String>;
}
Expand description

Configuration management interface

Required Methods§

Source

fn get_global_tool_version(&self, tool_name: &str) -> Option<String>

Get global tool version

Source

fn set_global_tool_version( &self, tool_name: &str, version: String, ) -> Result<()>

Set global tool version

Source

fn get_project_tool_version( &self, tool_name: &str, project_path: &Path, ) -> Option<String>

Get project-specific tool version

Source

fn set_project_tool_version( &self, tool_name: &str, version: String, project_path: &Path, ) -> Result<()>

Set project-specific tool version

Source

fn get_active_environment(&self) -> Option<String>

Get active environment name

Source

fn set_active_environment(&self, env_name: Option<String>) -> Result<()>

Set active environment

Source

fn resolve_tool_version( &self, tool_name: &str, cli_version: Option<&str>, project_path: Option<&Path>, ) -> Option<String>

Resolve tool version based on priority: CLI > Environment > Project > Global > Latest

Implementors§