pub enum Message {
Show 181 variants
ExternalRefresh,
SwitchView(View),
ToggleSidebarGroup(SidebarGroup),
SwitchProfile(String),
CreateProfile {
name: String,
game_id: String,
},
DeleteProfile(String),
ForkProfile {
source: String,
new_name: String,
},
OpenNewProfileDialog,
NewProfileNameChanged(String),
CancelNewProfileDialog,
SubmitNewProfileDialog,
SelectGame(String),
GamePathDialogBrowse,
GamePathDialogPathSelected {
game_id: String,
path: PathBuf,
},
CancelGamePathDialog,
OpenAddCustomGame,
BrowseAddCustomGameInstallPath,
AddCustomGameFieldChanged {
field: AddCustomGameDraftField,
value: String,
},
AddCustomGameInstallPathPicked(PathBuf),
AddCustomGameSubmit,
AddCustomGameCancel,
OpenManageCustomGames,
CloseManageCustomGames,
RemoveCustomGame(String),
GotWindowId(Option<Id>),
TitleBarDrag,
WindowMinimize,
WindowToggleMaximize,
WindowClose,
ToggleMod {
mod_id: String,
enabled: bool,
},
FilterChanged(String),
AddMod,
AddModFromPath(PathBuf),
RemoveMod(usize),
SelectMod(usize),
ModDetailsLoaded {
nexus_mod_id: NexusModId,
result: Result<NexusMod, String>,
},
ModGalleryLoaded {
nexus_mod_id: NexusModId,
urls: Vec<String>,
},
ModThumbnailLoaded {
nexus_mod_id: NexusModId,
gallery_index: usize,
bytes: Vec<u8>,
},
ModGalleryNext,
OpenModPage,
Deploy,
DeployComplete(Result<String, String>),
ReorderMod {
mod_id: String,
direction: ReorderDirection,
},
LockMod {
mod_id: String,
},
UnlockMod {
mod_id: String,
},
SearchCollections(String),
InstallCollection {
slug: String,
version: String,
},
BrowseTabSwitched(BrowseTab),
BrowseGameChanged(Option<String>),
BrowseSearchChanged(String),
BrowseSearchSubmit,
BrowseModsLoaded(Result<Vec<GqlModTile>, String>),
BrowseCollectionsLoaded(Result<Vec<GqlCollectionTile>, String>),
BrowseInstallMod {
game_domain: String,
mod_id: NexusModId,
},
BrowseInstallResult {
download_key: String,
result: Result<String, String>,
},
LoadWabbajackCatalog,
WabbajackCatalogLoaded(Result<Vec<WabbajackCatalogEntry>, String>),
WabbajackTabChanged(WabbajackTab),
WabbajackSearchChanged(String),
WabbajackGameFilterChanged(Option<String>),
WabbajackToggleOfficialOnly(bool),
WabbajackToggleNsfw(bool),
WabbajackToggleDown(bool),
WabbajackSelectEntry(usize),
WabbajackManualSourceChanged(String),
WabbajackHmProfileChanged(String),
WabbajackHmGameChanged(String),
WabbajackHmGameDirChanged(String),
WabbajackDownloadSelected,
WabbajackDownloadComplete(Result<PathBuf, String>),
WabbajackGenerateHmSnippet,
WabbajackHmSnippetGenerated(Result<String, String>),
WabbajackCopyHmSnippet,
WabbajackSaveHmSnippet,
WabbajackHmSnippetSaved(Result<PathBuf, String>),
WabbajackOpenUrl(String),
OpenWabbajackFile,
WabbajackFileSelected(PathBuf),
WabbajackProgress(f32),
WabbajackStartInstall,
WabbajackInstallComplete(Result<(String, Vec<String>), String>),
WabbajackLog(String),
StartFOMOD {
mod_path: PathBuf,
dest_path: PathBuf,
},
FOMODChoice {
step: usize,
group: usize,
option: usize,
selected: bool,
},
FOMODNext,
FOMODBack,
FOMODCancel,
FOMODUndo,
FOMODInstallComplete(Result<(), String>),
DownloadProgress {
id: String,
bytes: u64,
total: u64,
},
DownloadComplete {
id: String,
},
DownloadFailed {
id: String,
error: String,
},
SetNexusApiKeyDraft(String),
ToggleNexusApiKeyVisibility,
ReplaceNexusApiKey,
RemoveNexusConfigKey,
SetGamePath {
game_id: String,
path: PathBuf,
},
SetDownloadDir(PathBuf),
BrowseGamePath,
BrowseDownloadDir,
SetTheme(String),
ValidateNexusKey,
NexusKeyValidated(Result<(String, bool), String>),
CreateStockSnapshot,
StockSnapshotCreated(Result<String, String>),
VerifyStockSnapshot,
StockVerifyResult(Result<String, String>),
TryProfile,
RollbackExperiment,
CommitExperiment,
LoadSaveHistory,
RestoreSaveSnapshot(String),
SelectSaveSnapshot(String),
ToggleSeparator(Option<i64>),
DataTabFilterChanged(String),
DataTabToggleConflicts(bool),
RunDiagnostics,
LoadTools,
ToolsLoaded {
generation: u64,
result: Result<ToolLoadSnapshot, String>,
},
RefreshTools,
LoadExecutables,
RefreshExecutables,
ExecutablesLoaded {
generation: u64,
result: Result<Vec<ExecutableUiEntry>, String>,
},
SelectToolTab(String),
UpdateToolSetting {
tool_id: String,
key: String,
value: Value,
},
ToggleTool {
tool_id: String,
enabled: bool,
},
ToggleToolAdvancedSettings,
ApplyTool(String),
RevertTool(String),
ActivateOptiScaler,
DeactivateOptiScaler,
AdoptOptiScaler,
RestoreOptiScalerBackup,
ResetOptiScalerConfig,
RestoreToolSettings {
tool_id: String,
node_id: String,
},
ToolSettingsRestored {
tool_id: String,
result: Result<String, String>,
},
RefreshOptiScalerReleases,
OptiScalerReleasesLoaded(Result<Vec<ToolReleaseSummary>, String>),
InstallOptiScalerRelease,
OptiScalerReleaseInstalled(Result<String, String>),
RefreshProtonVersions,
ProtonVersionsLoaded(Result<Vec<String>, String>),
InstallProtonVersion,
ProtonVersionInstalled(Result<String, String>),
ToolApplied {
tool_id: String,
result: Result<ToolApplyResult, String>,
},
ToolReverted {
tool_id: String,
result: Result<ToolRevertResult, String>,
},
UpdateExecutableDraft {
field: ExecutableDraftField,
value: String,
},
OpenExecutableEditor,
ClearExecutableDraft,
EditExecutable(String),
SaveExecutable,
ExecutableSaved(Result<String, String>),
RemoveExecutable(String),
ExecutableRemoved {
name: String,
result: Result<String, String>,
},
RunExecutable(String),
ExecutableRunComplete {
name: String,
result: Result<String, String>,
},
BrowseExecutablePath,
ExecutablePathSelected(Option<PathBuf>),
BrowseExecutableWorkingDir,
ExecutableWorkingDirSelected(Option<PathBuf>),
PauseDownload(usize),
ResumeDownload(usize),
CancelDownload(usize),
ModEndorseToggle,
ModEndorseResult {
nexus_mod_id: NexusModId,
new_status: String,
result: Result<(), String>,
},
ModTrackToggle,
ModTrackResult {
nexus_mod_id: NexusModId,
new_tracked: bool,
result: Result<(), String>,
},
ModTrackedSetLoaded {
nexus_mod_id: NexusModId,
is_tracked: bool,
},
ClearOverwrite,
MoveOverwriteToMod(String),
ToggleFilterMode,
CycleFilter(FilterKind),
ClearFilters,
ToggleCompactModList,
ButtonHoverStarted {
id: u64,
description: &'static str,
},
ButtonHoverElapsed {
id: u64,
},
ButtonHoverEnded {
id: u64,
},
Noop,
UpdateCheckLoaded(Result<Option<UpdateInfo>, String>),
OpenUpdateReleasePage,
DismissUpdateBanner,
}Variants§
ExternalRefresh
External process (typically the CLI) notified the GUI that the profile DB has changed. Triggers a profile reload.
SwitchView(View)
ToggleSidebarGroup(SidebarGroup)
SwitchProfile(String)
CreateProfile
DeleteProfile(String)
ForkProfile
OpenNewProfileDialog
NewProfileNameChanged(String)
CancelNewProfileDialog
SubmitNewProfileDialog
SelectGame(String)
GamePathDialogBrowse
GamePathDialogPathSelected
CancelGamePathDialog
OpenAddCustomGame
BrowseAddCustomGameInstallPath
AddCustomGameFieldChanged
AddCustomGameInstallPathPicked(PathBuf)
AddCustomGameSubmit
AddCustomGameCancel
OpenManageCustomGames
CloseManageCustomGames
RemoveCustomGame(String)
GotWindowId(Option<Id>)
TitleBarDrag
WindowMinimize
WindowToggleMaximize
WindowClose
ToggleMod
FilterChanged(String)
AddMod
AddModFromPath(PathBuf)
RemoveMod(usize)
SelectMod(usize)
ModDetailsLoaded
Initial Nexus v1 get_mod response for the selected mod. Carries
nexus_mod_id so stale responses (from a previous selection) are
discarded when they race a newer click.
ModGalleryLoaded
Gallery image URL list returned by the v2 GraphQL endpoint.
ModThumbnailLoaded
Image bytes downloaded for a specific gallery slot. Guarded by both
nexus_mod_id and gallery_index so clicking through the gallery
rapidly doesn’t let an old image overwrite a newer one.
ModGalleryNext
User clicked the thumbnail — advance to the next image in the gallery.
OpenModPage
User clicked the “Open in Nexus” link.
Deploy
DeployComplete(Result<String, String>)
ReorderMod
Move a specific mod up or down by one position. Mod-id-based (not
index-based) because the load_order view and mod_list view operate
on different index spaces — resolved_order vs. profile.mods —
and an index-based message was latently unsound. Also lets the
handler consult the per-mod lock without an index round-trip.
LockMod
Pin an individual mod in place (per-mod lock).
UnlockMod
Release an individual mod’s per-mod pin.
SearchCollections(String)
InstallCollection
BrowseTabSwitched(BrowseTab)
Switch the active browse tab. Fires a task to load the feed for the new tab if its contents are empty.
BrowseGameChanged(Option<String>)
Switch the Nexus browser to a different supported game.
BrowseSearchChanged(String)
Live search box keystroke.
BrowseSearchSubmit
Submit the search (Enter pressed). Runs the appropriate query depending on the active tab.
BrowseModsLoaded(Result<Vec<GqlModTile>, String>)
Async result of a mods feed fetch.
BrowseCollectionsLoaded(Result<Vec<GqlCollectionTile>, String>)
Async result of a collections feed fetch.
BrowseInstallMod
User clicked “Install” on a mod tile. Runs the install
pipeline via modde_sources::nexus::install::install_single_mod.
BrowseInstallResult
Async completion of a browse install. The Ok payload is a
short human-readable status message; Err is an error string.
LoadWabbajackCatalog
WabbajackCatalogLoaded(Result<Vec<WabbajackCatalogEntry>, String>)
WabbajackTabChanged(WabbajackTab)
WabbajackSearchChanged(String)
WabbajackGameFilterChanged(Option<String>)
WabbajackToggleOfficialOnly(bool)
WabbajackToggleNsfw(bool)
WabbajackToggleDown(bool)
WabbajackSelectEntry(usize)
WabbajackManualSourceChanged(String)
WabbajackHmProfileChanged(String)
WabbajackHmGameChanged(String)
WabbajackHmGameDirChanged(String)
WabbajackDownloadSelected
WabbajackDownloadComplete(Result<PathBuf, String>)
WabbajackGenerateHmSnippet
WabbajackHmSnippetGenerated(Result<String, String>)
WabbajackCopyHmSnippet
WabbajackSaveHmSnippet
WabbajackHmSnippetSaved(Result<PathBuf, String>)
WabbajackOpenUrl(String)
OpenWabbajackFile
WabbajackFileSelected(PathBuf)
WabbajackProgress(f32)
WabbajackStartInstall
WabbajackInstallComplete(Result<(String, Vec<String>), String>)
WabbajackLog(String)
StartFOMOD
FOMODChoice
FOMODNext
FOMODBack
FOMODCancel
FOMODUndo
FOMODInstallComplete(Result<(), String>)
DownloadProgress
DownloadComplete
DownloadFailed
SetNexusApiKeyDraft(String)
ToggleNexusApiKeyVisibility
ReplaceNexusApiKey
RemoveNexusConfigKey
SetGamePath
SetDownloadDir(PathBuf)
BrowseGamePath
BrowseDownloadDir
SetTheme(String)
ValidateNexusKey
NexusKeyValidated(Result<(String, bool), String>)
CreateStockSnapshot
StockSnapshotCreated(Result<String, String>)
VerifyStockSnapshot
StockVerifyResult(Result<String, String>)
TryProfile
RollbackExperiment
CommitExperiment
LoadSaveHistory
RestoreSaveSnapshot(String)
SelectSaveSnapshot(String)
ToggleSeparator(Option<i64>)
DataTabFilterChanged(String)
DataTabToggleConflicts(bool)
RunDiagnostics
LoadTools
ToolsLoaded
RefreshTools
LoadExecutables
RefreshExecutables
ExecutablesLoaded
SelectToolTab(String)
UpdateToolSetting
ToggleTool
ToggleToolAdvancedSettings
ApplyTool(String)
RevertTool(String)
ActivateOptiScaler
DeactivateOptiScaler
AdoptOptiScaler
RestoreOptiScalerBackup
ResetOptiScalerConfig
RestoreToolSettings
ToolSettingsRestored
RefreshOptiScalerReleases
OptiScalerReleasesLoaded(Result<Vec<ToolReleaseSummary>, String>)
InstallOptiScalerRelease
OptiScalerReleaseInstalled(Result<String, String>)
RefreshProtonVersions
ProtonVersionsLoaded(Result<Vec<String>, String>)
InstallProtonVersion
ProtonVersionInstalled(Result<String, String>)
ToolApplied
ToolReverted
UpdateExecutableDraft
OpenExecutableEditor
ClearExecutableDraft
EditExecutable(String)
SaveExecutable
ExecutableSaved(Result<String, String>)
RemoveExecutable(String)
ExecutableRemoved
RunExecutable(String)
ExecutableRunComplete
BrowseExecutablePath
ExecutablePathSelected(Option<PathBuf>)
BrowseExecutableWorkingDir
ExecutableWorkingDirSelected(Option<PathBuf>)
PauseDownload(usize)
ResumeDownload(usize)
CancelDownload(usize)
ModEndorseToggle
User clicked the endorse/abstain toggle button.
ModEndorseResult
Async result of an endorse or abstain call. Carries the target status the handler optimistically applied, so it can roll back if the request failed.
ModTrackToggle
User clicked the track/untrack toggle button.
ModTrackResult
Async result of a track or untrack call.
ModTrackedSetLoaded
Async result of the initial get_tracked_mods call fired alongside
get_mod when a mod is selected.
ClearOverwrite
MoveOverwriteToMod(String)
ToggleFilterMode
CycleFilter(FilterKind)
ClearFilters
ToggleCompactModList
ButtonHoverStarted
ButtonHoverElapsed
ButtonHoverEnded
Noop
UpdateCheckLoaded(Result<Option<UpdateInfo>, String>)
OpenUpdateReleasePage
DismissUpdateBanner
Trait Implementations§
Source§impl From<ButtonAction> for Message
impl From<ButtonAction> for Message
Source§fn from(action: ButtonAction) -> Self
fn from(action: ButtonAction) -> Self
Source§impl Widget<Message, Theme, Renderer<Renderer, Renderer>> for SelectableText
impl Widget<Message, Theme, Renderer<Renderer, Renderer>> for SelectableText
Source§fn update(
&mut self,
tree: &mut Tree,
event: &Event,
layout: Layout<'_>,
cursor: Cursor,
_renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>,
_viewport: &Rectangle,
)
fn update( &mut self, tree: &mut Tree, event: &Event, layout: Layout<'_>, cursor: Cursor, _renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, _viewport: &Rectangle, )
Source§fn draw(
&self,
tree: &Tree,
renderer: &mut Renderer,
theme: &Theme,
defaults: &Style,
layout: Layout<'_>,
_cursor: Cursor,
viewport: &Rectangle,
)
fn draw( &self, tree: &Tree, renderer: &mut Renderer, theme: &Theme, defaults: &Style, layout: Layout<'_>, _cursor: Cursor, viewport: &Rectangle, )
Widget using the associated Renderer.Source§fn operate(
&mut self,
_tree: &mut Tree,
layout: Layout<'_>,
_renderer: &Renderer,
operation: &mut dyn Operation,
)
fn operate( &mut self, _tree: &mut Tree, layout: Layout<'_>, _renderer: &Renderer, operation: &mut dyn Operation, )
Source§fn mouse_interaction(
&self,
_tree: &Tree,
layout: Layout<'_>,
cursor: Cursor,
_viewport: &Rectangle,
_renderer: &Renderer,
) -> Interaction
fn mouse_interaction( &self, _tree: &Tree, layout: Layout<'_>, cursor: Cursor, _viewport: &Rectangle, _renderer: &Renderer, ) -> Interaction
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more