Skip to main content

GameTool

Trait GameTool 

Source
pub trait GameTool: Send + Sync {
Show 25 methods // Required methods fn tool_id(&self) -> &'static str; fn display_name(&self) -> &'static str; fn category(&self) -> ToolCategory; fn detect_available(&self) -> ToolAvailability; fn env_vars(&self, config: &ToolConfig) -> SmallVec<[(String, String); 4]>; fn default_config(&self) -> ToolConfig; // Provided methods fn description(&self) -> &'static str { ... } fn settings_schema(&self) -> Vec<ToolSettingSpec> { ... } fn settings_schema_for( &self, _context: Option<&ToolGameContext>, _config: &ToolConfig, ) -> Vec<ToolSettingSpec> { ... } fn env_vars_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> SmallVec<[(String, String); 4]> { ... } fn wrapper_command(&self, _config: &ToolConfig) -> Option<WrapperEntry> { ... } fn wine_dll_overrides(&self, _config: &ToolConfig) -> SmallVec<[String; 4]> { ... } fn wine_dll_overrides_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> SmallVec<[String; 4]> { ... } fn apply( &self, _game_dir: &Path, _config: &ToolConfig, ) -> Result<AppliedFiles> { ... } fn apply_for( &self, game_dir: &Path, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> Result<AppliedFiles> { ... } fn preview_apply_for( &self, _game_dir: &Path, _context: Option<&ToolGameContext>, _config: &ToolConfig, ) -> Result<ToolApplyPreview> { ... } fn revert(&self, game_dir: &Path, applied: &AppliedFiles) -> Result<()> { ... } fn generate_config(&self, _config: &ToolConfig) -> Option<GeneratedConfig> { ... } fn generate_config_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> Option<GeneratedConfig> { ... } fn default_config_for( &self, _context: Option<&ToolGameContext>, ) -> ToolConfig { ... } fn supports_releases(&self) -> bool { ... } fn list_releases(&self) -> ToolReleaseListFuture<'_> { ... } fn installable_release_assets( &self, _release: &ToolReleaseSummary, ) -> Vec<String> { ... } fn install_release<'a>( &'a self, _game_id: &'a str, _config: ToolConfig, _tag: &'a str, _asset: &'a str, ) -> ToolReleaseInstallFuture<'a> { ... } fn install_release_from_path<'a>( &'a self, _game_id: &'a str, _config: ToolConfig, _tag: &'a str, _asset: &'a str, _path: PathBuf, ) -> ToolReleaseInstallFuture<'a> { ... }
}
Expand description

A gaming tool/overlay that can be managed per-game.

Required Methods§

Source

fn tool_id(&self) -> &'static str

Unique identifier (e.g. "mangohud", "gamemode").

Source

fn display_name(&self) -> &'static str

Human-readable display name.

Source

fn category(&self) -> ToolCategory

Tool category.

Source

fn detect_available(&self) -> ToolAvailability

Check if the tool is installed on the system.

Source

fn env_vars(&self, config: &ToolConfig) -> SmallVec<[(String, String); 4]>

Environment variables to set when launching the game.

Source

fn default_config(&self) -> ToolConfig

Default configuration for a fresh enable.

Provided Methods§

Source

fn description(&self) -> &'static str

Short user-facing description for the tool tab.

Source

fn settings_schema(&self) -> Vec<ToolSettingSpec>

Declarative settings rendered by the UI.

Source

fn settings_schema_for( &self, _context: Option<&ToolGameContext>, _config: &ToolConfig, ) -> Vec<ToolSettingSpec>

Declarative settings rendered by the UI with game context.

Source

fn env_vars_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> SmallVec<[(String, String); 4]>

Environment variables to set when launching the game with game context.

Source

fn wrapper_command(&self, _config: &ToolConfig) -> Option<WrapperEntry>

Wrapper command to chain before the game (e.g. gamemoderun).

Source

fn wine_dll_overrides(&self, _config: &ToolConfig) -> SmallVec<[String; 4]>

Wine DLL overrides needed (e.g. "dxgi", "version").

Source

fn wine_dll_overrides_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> SmallVec<[String; 4]>

Wine DLL overrides needed with game context.

Source

fn apply(&self, _game_dir: &Path, _config: &ToolConfig) -> Result<AppliedFiles>

Apply/install files into the game directory (DLLs, shaders, etc.). Returns a manifest of files written for revert tracking.

Source

fn apply_for( &self, game_dir: &Path, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> Result<AppliedFiles>

Apply/install files with game context.

Source

fn preview_apply_for( &self, _game_dir: &Path, _context: Option<&ToolGameContext>, _config: &ToolConfig, ) -> Result<ToolApplyPreview>

Preview an apply without mutating the game directory.

Source

fn revert(&self, game_dir: &Path, applied: &AppliedFiles) -> Result<()>

Revert files previously applied by Self::apply.

Source

fn generate_config(&self, _config: &ToolConfig) -> Option<GeneratedConfig>

Generate a per-game config file (e.g. MangoHud.conf).

Source

fn generate_config_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> Option<GeneratedConfig>

Generate a per-game config file with game context.

Source

fn default_config_for(&self, _context: Option<&ToolGameContext>) -> ToolConfig

Default configuration for a fresh enable with game context.

Source

fn supports_releases(&self) -> bool

Whether this tool supports explicit per-game release selection.

Source

fn list_releases(&self) -> ToolReleaseListFuture<'_>

List upstream releases for release-backed tools.

Source

fn installable_release_assets( &self, _release: &ToolReleaseSummary, ) -> Vec<String>

Return installable asset names for a release.

Source

fn install_release<'a>( &'a self, _game_id: &'a str, _config: ToolConfig, _tag: &'a str, _asset: &'a str, ) -> ToolReleaseInstallFuture<'a>

Install a selected release asset and return the updated per-game config.

Source

fn install_release_from_path<'a>( &'a self, _game_id: &'a str, _config: ToolConfig, _tag: &'a str, _asset: &'a str, _path: PathBuf, ) -> ToolReleaseInstallFuture<'a>

Install a selected release asset from a local path and return the updated per-game config.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§