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§
Sourcefn display_name(&self) -> &'static str
fn display_name(&self) -> &'static str
Human-readable display name.
Sourcefn category(&self) -> ToolCategory
fn category(&self) -> ToolCategory
Tool category.
Sourcefn detect_available(&self) -> ToolAvailability
fn detect_available(&self) -> ToolAvailability
Check if the tool is installed on the system.
Sourcefn env_vars(&self, config: &ToolConfig) -> SmallVec<[(String, String); 4]>
fn env_vars(&self, config: &ToolConfig) -> SmallVec<[(String, String); 4]>
Environment variables to set when launching the game.
Sourcefn default_config(&self) -> ToolConfig
fn default_config(&self) -> ToolConfig
Default configuration for a fresh enable.
Provided Methods§
Sourcefn description(&self) -> &'static str
fn description(&self) -> &'static str
Short user-facing description for the tool tab.
Sourcefn settings_schema(&self) -> Vec<ToolSettingSpec>
fn settings_schema(&self) -> Vec<ToolSettingSpec>
Declarative settings rendered by the UI.
Sourcefn settings_schema_for(
&self,
_context: Option<&ToolGameContext>,
_config: &ToolConfig,
) -> Vec<ToolSettingSpec>
fn settings_schema_for( &self, _context: Option<&ToolGameContext>, _config: &ToolConfig, ) -> Vec<ToolSettingSpec>
Declarative settings rendered by the UI with game context.
Sourcefn env_vars_for(
&self,
_context: Option<&ToolGameContext>,
config: &ToolConfig,
) -> SmallVec<[(String, String); 4]>
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.
Sourcefn wrapper_command(&self, _config: &ToolConfig) -> Option<WrapperEntry>
fn wrapper_command(&self, _config: &ToolConfig) -> Option<WrapperEntry>
Wrapper command to chain before the game (e.g. gamemoderun).
Sourcefn wine_dll_overrides(&self, _config: &ToolConfig) -> SmallVec<[String; 4]>
fn wine_dll_overrides(&self, _config: &ToolConfig) -> SmallVec<[String; 4]>
Wine DLL overrides needed (e.g. "dxgi", "version").
Sourcefn wine_dll_overrides_for(
&self,
_context: Option<&ToolGameContext>,
config: &ToolConfig,
) -> SmallVec<[String; 4]>
fn wine_dll_overrides_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> SmallVec<[String; 4]>
Wine DLL overrides needed with game context.
Sourcefn apply(&self, _game_dir: &Path, _config: &ToolConfig) -> Result<AppliedFiles>
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.
Sourcefn apply_for(
&self,
game_dir: &Path,
_context: Option<&ToolGameContext>,
config: &ToolConfig,
) -> Result<AppliedFiles>
fn apply_for( &self, game_dir: &Path, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> Result<AppliedFiles>
Apply/install files with game context.
Sourcefn preview_apply_for(
&self,
_game_dir: &Path,
_context: Option<&ToolGameContext>,
_config: &ToolConfig,
) -> Result<ToolApplyPreview>
fn preview_apply_for( &self, _game_dir: &Path, _context: Option<&ToolGameContext>, _config: &ToolConfig, ) -> Result<ToolApplyPreview>
Preview an apply without mutating the game directory.
Sourcefn revert(&self, game_dir: &Path, applied: &AppliedFiles) -> Result<()>
fn revert(&self, game_dir: &Path, applied: &AppliedFiles) -> Result<()>
Revert files previously applied by Self::apply.
Sourcefn generate_config(&self, _config: &ToolConfig) -> Option<GeneratedConfig>
fn generate_config(&self, _config: &ToolConfig) -> Option<GeneratedConfig>
Generate a per-game config file (e.g. MangoHud.conf).
Sourcefn generate_config_for(
&self,
_context: Option<&ToolGameContext>,
config: &ToolConfig,
) -> Option<GeneratedConfig>
fn generate_config_for( &self, _context: Option<&ToolGameContext>, config: &ToolConfig, ) -> Option<GeneratedConfig>
Generate a per-game config file with game context.
Sourcefn default_config_for(&self, _context: Option<&ToolGameContext>) -> ToolConfig
fn default_config_for(&self, _context: Option<&ToolGameContext>) -> ToolConfig
Default configuration for a fresh enable with game context.
Sourcefn supports_releases(&self) -> bool
fn supports_releases(&self) -> bool
Whether this tool supports explicit per-game release selection.
Sourcefn list_releases(&self) -> ToolReleaseListFuture<'_>
fn list_releases(&self) -> ToolReleaseListFuture<'_>
List upstream releases for release-backed tools.
Sourcefn installable_release_assets(
&self,
_release: &ToolReleaseSummary,
) -> Vec<String>
fn installable_release_assets( &self, _release: &ToolReleaseSummary, ) -> Vec<String>
Return installable asset names for a release.
Sourcefn install_release<'a>(
&'a self,
_game_id: &'a str,
_config: ToolConfig,
_tag: &'a str,
_asset: &'a str,
) -> ToolReleaseInstallFuture<'a>
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.
Sourcefn install_release_from_path<'a>(
&'a self,
_game_id: &'a str,
_config: ToolConfig,
_tag: &'a str,
_asset: &'a str,
_path: PathBuf,
) -> 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>
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".