pub enum Message {
Show 159 variants
SwitchTab(usize),
NewTab,
CloseTab(usize),
OpenRepo,
InitRepo,
RepoSelected(Option<PathBuf>),
RepoInitSelected(Option<PathBuf>),
RepoOpened(Result<RepoPayload, String>),
RefreshRepo,
RepoRefreshed(Result<RepoPayload, String>),
CheckoutBranch(String),
BranchCheckedOut(Result<(), String>),
CreateBranch,
NewBranchNameChanged(String),
BranchCreated(Result<(), String>),
DeleteBranch(String),
BranchDeleted(Result<(), String>),
ToggleBranchCreate,
ToggleLocalBranches,
ToggleRemoteBranches,
SelectCommit(usize),
CommitFileListLoaded(Result<Vec<DiffFileEntry>, String>),
SingleFileDiffLoaded(Result<DiffInfo, String>),
DiffFileWithWorkingTree(String, String),
DiffWithWorkingTreeLoaded(Result<DiffInfo, String>),
CommitLogScrolled(f32, f32),
DiffViewScrolled(f32),
MoreCommitsLoaded(Result<CommitPage, String>),
StageFile(String),
UnstageFile(String),
StageAll,
UnstageAll,
DiscardFile(String),
ConfirmDiscard(String),
CancelDiscard,
ToggleSelectUnstaged(String),
ToggleSelectStaged(String),
StageSelected,
UnstageSelected,
DiscardSelected,
DiscardStagedFile(String),
StagingUpdated(Result<StagingPayload, String>),
CommitMessageChanged(String),
CreateCommit,
CommitCreated(Result<(), String>),
StashSave,
StashPop(usize),
StashDrop(usize),
StashUpdated(Result<Vec<StashEntry>, String>),
StashMessageChanged(String),
OpenStashContextMenu(usize),
OpenCommitFileContextMenu(String, String),
OpenUnstagedFileContextMenu(String),
OpenStagedFileContextMenu(String),
ViewStashDiff(usize),
StashDiffLoaded(Result<Vec<DiffInfo>, String>),
StashApply(usize),
Fetch,
FetchCompleted(Result<(), String>),
SelectDiffByIndex(usize),
SelectDiff(DiffInfo),
DismissError,
ZoomIn,
ZoomOut,
ZoomReset,
ToggleSidebar,
CloseRepo,
PaneDragStart(DragTarget, f32),
PaneDragStartH(DragTargetH, f32),
PaneDragMove(f32, f32),
PaneDragEnd,
RepoRecorded(Result<Vec<RepoHistoryEntry>, String>),
SettingsLoaded(Result<Vec<RepoHistoryEntry>, String>),
ThemeSaved(Result<(), String>),
LayoutSaved(Result<(), String>),
LayoutLoaded(Result<Option<LayoutSettings>, String>),
SessionSaved(Result<(), String>),
RepoRestoredAt(usize, Result<RepoPayload, String>),
OpenBranchContextMenu(String, usize, bool),
OpenRemoteBranchContextMenu(String),
CheckoutRemoteBranch(String),
DeleteRemoteBranch(String),
OpenCommitContextMenu(usize),
CloseContextMenu,
PushBranch(String),
PullBranch(String),
RebaseOnto(String),
BeginRenameBranch(String),
RenameBranchInputChanged(String),
ConfirmRenameBranch,
CancelRename,
MergeBranch(String),
BeginCreateTag(String, bool),
TagNameChanged(String),
TagMessageChanged(String),
ConfirmCreateTag,
CancelCreateTag,
CherryPickCommit(String),
BeginCreateBranchAtCommit(String),
ConfirmCreateBranchAtCommit,
CancelCreateBranchAtCommit,
ExecuteCommitAction(String, CommitAction),
CheckoutCommitDetached(String),
RebaseOntoCommit(String),
RevertCommit(String),
ResetSoft(String),
ResetMixed(String),
ResetHard(String),
CopyText(String),
GitOperationResult(Result<RepoPayload, String>),
ThemeChanged(usize),
EditorChanged(Editor),
EditorSaved(Result<(), String>),
OpenRecentRepo(PathBuf),
ToggleSearch,
SearchQueryChanged(String),
SearchResultsLoaded(Result<Vec<CommitInfo>, String>),
SelectSearchResult(usize),
ConfirmSearchResult,
SearchDiffFilesLoaded(Result<Vec<DiffFileEntry>, String>),
ToggleSearchDiffFile(usize),
ViewSearchDiffFile(usize),
SearchFileDiffLoaded(Result<DiffInfo, String>),
ToggleSearchDiffSelectAll,
DiffSelectedFiles,
SearchMultiDiffLoaded(Result<Vec<DiffInfo>, String>),
SearchDiffBack,
OpenSearchResultContextMenu(usize),
FileSystemChanged,
OpenInEditor(String),
OpenInDefaultProgram(String),
ShowInFolder(String),
ModifiersChanged(Modifiers),
CommitMultiDiffLoaded(Result<Vec<DiffInfo>, String>),
ViewFileHistory(String),
FileHistoryLoaded(Result<(String, Vec<CommitInfo>), String>),
CloseFileHistory,
FileHistoryScrolled(f32),
SelectFileHistoryCommit(String),
ViewFileBlame(String),
FileBlameLoaded(Result<(String, Vec<BlameLine>), String>),
CloseFileBlame,
BlameScrolled(f32),
DeleteFile(String),
ConfirmDeleteFile,
CancelDeleteFile,
DiffMultiWithWorkingTree(String, Vec<String>),
CheckoutFileAtCommit(String, String),
CheckoutMultiFilesAtCommit(String, Vec<String>),
CherryPickCommits(Vec<String>),
RevertCommits(Vec<String>),
CommitRangeDiffLoaded(Result<Vec<DiffInfo>, String>),
WindowResized(f32, f32),
WindowMoved(f32, f32),
OpenSettingsFile,
ShiftArrowDown,
ShiftArrowUp,
AnimationTick,
Noop,
}Variants§
SwitchTab(usize)
User clicked a tab in the tab bar.
NewTab
User clicked the “+” button to open a new empty tab.
CloseTab(usize)
User clicked the close (×) button on a tab.
OpenRepo
User clicked “Open Repository” — launch the folder picker.
InitRepo
User clicked “Init Repository” — launch the folder picker for init.
RepoSelected(Option<PathBuf>)
Folder picker returned a path (or was cancelled → None).
RepoInitSelected(Option<PathBuf>)
Folder picker returned a path for init (or was cancelled → None).
RepoOpened(Result<RepoPayload, String>)
Async repo-open completed.
RefreshRepo
User requested a full refresh of the current repo.
RepoRefreshed(Result<RepoPayload, String>)
Async refresh completed.
CheckoutBranch(String)
User clicked a branch name → checkout that branch.
BranchCheckedOut(Result<(), String>)
Async checkout completed.
CreateBranch
User submitted the new-branch form.
NewBranchNameChanged(String)
User is typing a new branch name.
BranchCreated(Result<(), String>)
Async branch creation completed.
DeleteBranch(String)
User clicked the delete button next to a branch.
BranchDeleted(Result<(), String>)
Async branch deletion completed.
ToggleBranchCreate
Toggle visibility of the new-branch inline form.
ToggleLocalBranches
Collapse or expand the Local branches section.
ToggleRemoteBranches
Collapse or expand the Remote branches section.
SelectCommit(usize)
User clicked a commit row in the log.
CommitFileListLoaded(Result<Vec<DiffFileEntry>, String>)
Async commit file-list load completed (lightweight — no diff content).
SingleFileDiffLoaded(Result<DiffInfo, String>)
Async single-file diff load completed.
DiffFileWithWorkingTree(String, String)
Diff a file from a commit against the working tree.
DiffWithWorkingTreeLoaded(Result<DiffInfo, String>)
Result of diffing a file with the working tree.
CommitLogScrolled(f32, f32)
The commit log scrollable was scrolled.
Carries (absolute_y, relative_y) — absolute for virtual-window
positioning, relative (0.0 = top, 1.0 = bottom) for load-more trigger.
DiffViewScrolled(f32)
The diff viewer scrollable was scrolled — carries absolute_y.
MoreCommitsLoaded(Result<CommitPage, String>)
A lazy-loaded page of additional commits was fetched from the background.
StageFile(String)
Stage a single file by its path.
UnstageFile(String)
Unstage a single file by its path.
StageAll
Stage all unstaged files.
UnstageAll
Unstage all staged files.
DiscardFile(String)
Discard working-directory changes for a file.
ConfirmDiscard(String)
User confirmed the discard for a file.
CancelDiscard
User cancelled a pending discard.
ToggleSelectUnstaged(String)
Toggle selection of an unstaged file (Shift+Click).
ToggleSelectStaged(String)
Toggle selection of a staged file (Shift+Click).
StageSelected
Stage all currently selected unstaged files.
UnstageSelected
Unstage all currently selected staged files.
DiscardSelected
Discard all currently selected unstaged files.
DiscardStagedFile(String)
Discard a staged file (unstage + discard working dir changes).
StagingUpdated(Result<StagingPayload, String>)
Async staging operation completed.
CommitMessageChanged(String)
User is typing in the commit-message input.
CreateCommit
User clicked “Commit”.
CommitCreated(Result<(), String>)
Async commit creation completed.
StashSave
Save the current working state as a stash.
StashPop(usize)
Pop (apply + drop) a stash by index.
StashDrop(usize)
Drop (delete) a stash by index without applying.
StashUpdated(Result<Vec<StashEntry>, String>)
Async stash operation completed.
StashMessageChanged(String)
User is typing in the stash-message input.
OpenStashContextMenu(usize)
User right-clicked a stash entry.
OpenCommitFileContextMenu(String, String)
User right-clicked a file in the commit diff file list.
OpenUnstagedFileContextMenu(String)
User right-clicked an unstaged file.
OpenStagedFileContextMenu(String)
User right-clicked a staged file.
ViewStashDiff(usize)
User wants to view the diff of a stash entry.
StashDiffLoaded(Result<Vec<DiffInfo>, String>)
Stash diff loaded.
StashApply(usize)
Apply a stash (like pop but keeps the stash).
Fetch
Fetch from the first configured remote.
FetchCompleted(Result<(), String>)
Async fetch completed.
SelectDiffByIndex(usize)
User clicked a file in the commit-diff file list (by index into commit_files).
SelectDiff(DiffInfo)
User clicked a file in the staging area to view its diff.
DismissError
Dismiss the current error banner.
ZoomIn
Zoom in (increase UI scale).
ZoomOut
Zoom out (decrease UI scale).
ZoomReset
Reset zoom to 100%.
ToggleSidebar
Toggle the left sidebar.
CloseRepo
Close the current repository and return to the welcome screen.
PaneDragStart(DragTarget, f32)
User pressed the mouse button on a vertical divider to start dragging.
PaneDragStartH(DragTargetH, f32)
User pressed the mouse button on the horizontal staging divider.
PaneDragMove(f32, f32)
Mouse moved during a drag — (x, y) in window coordinates.
PaneDragEnd
Mouse button released — stop dragging.
RepoRecorded(Result<Vec<RepoHistoryEntry>, String>)
Background record_repo_opened + load_settings completed.
Carries the refreshed recent-repos list (or an error string).
SettingsLoaded(Result<Vec<RepoHistoryEntry>, String>)
Background load_settings completed (e.g. after closing a repo).
ThemeSaved(Result<(), String>)
Background save_theme completed (fire-and-forget, errors logged).
LayoutSaved(Result<(), String>)
Background layout save completed (fire-and-forget, errors logged).
LayoutLoaded(Result<Option<LayoutSettings>, String>)
Layout loaded from persisted settings on startup.
SessionSaved(Result<(), String>)
Background session save completed (fire-and-forget).
RepoRestoredAt(usize, Result<RepoPayload, String>)
Async restore of a specific tab (by index) completed on startup.
OpenBranchContextMenu(String, usize, bool)
User right-clicked a local branch. Payload: (branch_name, index_in_local_list, is_current_branch).
OpenRemoteBranchContextMenu(String)
User right-clicked a remote branch.
CheckoutRemoteBranch(String)
Checkout a remote branch (creates local tracking branch).
DeleteRemoteBranch(String)
Delete a remote branch.
OpenCommitContextMenu(usize)
User right-clicked a commit row.
CloseContextMenu
Dismiss the context menu without taking an action.
PushBranch(String)
Push the named branch to its default remote.
PullBranch(String)
Pull the current branch from its remote, rebasing local commits on top.
RebaseOnto(String)
Rebase the current HEAD onto target (a branch name or OID string).
BeginRenameBranch(String)
Begin an inline rename: record the branch being renamed and pre-fill input.
RenameBranchInputChanged(String)
User is typing in the rename input.
ConfirmRenameBranch
User confirmed the rename.
CancelRename
User cancelled the rename.
MergeBranch(String)
Merge a named branch into the current HEAD branch.
BeginCreateTag(String, bool)
Begin an inline tag-creation form at the given commit OID. The bool indicates whether this is an annotated tag (true) or lightweight (false).
TagNameChanged(String)
User is typing in the tag name input.
TagMessageChanged(String)
User is typing in the annotated tag message input.
ConfirmCreateTag
User confirmed tag creation.
CancelCreateTag
User cancelled tag creation.
CherryPickCommit(String)
Cherry-pick a commit by OID onto the current branch.
BeginCreateBranchAtCommit(String)
Begin an inline “create branch at this commit” form.
ConfirmCreateBranchAtCommit
User confirmed branch creation at a specific commit.
CancelCreateBranchAtCommit
User cancelled branch creation at a specific commit.
ExecuteCommitAction(String, CommitAction)
Execute a commit action that requires no further user input.
Actions that need input (branch name, tag name) continue to use the
existing BeginCreate* messages.
CheckoutCommitDetached(String)
Checkout a specific commit in detached HEAD mode.
RebaseOntoCommit(String)
Rebase the current branch on top of a specific commit.
RevertCommit(String)
Revert a specific commit (creates a revert commit).
ResetSoft(String)
git reset –soft oid — move HEAD, keep staged + working changes.
ResetMixed(String)
git reset –mixed oid — move HEAD and unstage; keep working directory.
ResetHard(String)
git reset –hard oid — move HEAD and discard all uncommitted changes.
CopyText(String)
Copy a string to the system clipboard.
GitOperationResult(Result<RepoPayload, String>)
Generic result for any git operation that produces a full repo refresh. The operation itself is responsible for a descriptive error string.
ThemeChanged(usize)
User selected a different theme from the picker (by index into
gitkraft_core::THEME_NAMES).
EditorChanged(Editor)
User selected a different editor from the picker.
EditorSaved(Result<(), String>)
Background save_editor completed (fire-and-forget, errors logged).
OpenRecentRepo(PathBuf)
User clicked a recent repository entry on the welcome screen.
ToggleSearch
Toggle the search overlay.
SearchQueryChanged(String)
User typed in the search input.
SearchResultsLoaded(Result<Vec<CommitInfo>, String>)
Search results arrived from the background.
SelectSearchResult(usize)
User selected a search result (by index).
ConfirmSearchResult
User confirmed the selected search result (Enter).
SearchDiffFilesLoaded(Result<Vec<DiffFileEntry>, String>)
File list for commit-vs-workdir diff loaded.
ToggleSearchDiffFile(usize)
User toggled selection of a file in the search diff file list.
ViewSearchDiffFile(usize)
User requested to view diff of selected search file against working tree.
SearchFileDiffLoaded(Result<DiffInfo, String>)
The diff content for a search file loaded.
ToggleSearchDiffSelectAll
User clicked “Select All” / “Deselect All” in search diff.
DiffSelectedFiles
Diff all selected files against working tree (combined view).
SearchMultiDiffLoaded(Result<Vec<DiffInfo>, String>)
Combined diffs for selected files loaded.
SearchDiffBack
Go back from file diff view to file list in search.
OpenSearchResultContextMenu(usize)
User right-clicked a search result — open commit context menu.
FileSystemChanged
File system change detected — auto-refresh staging area.
OpenInEditor(String)
Open a file in the configured editor.
OpenInDefaultProgram(String)
Open a file in the system’s default program.
ShowInFolder(String)
Show a file in the system file manager.
ModifiersChanged(Modifiers)
Keyboard modifier state changed (e.g. Shift pressed/released).
CommitMultiDiffLoaded(Result<Vec<DiffInfo>, String>)
Multiple commit file diffs loaded for a multi-file selection.
ViewFileHistory(String)
Open the file-history overlay for a specific repo-relative path.
FileHistoryLoaded(Result<(String, Vec<CommitInfo>), String>)
Background load of file-history commits completed.
CloseFileHistory
Close the file-history overlay without taking an action.
FileHistoryScrolled(f32)
User scrolled the file-history list.
SelectFileHistoryCommit(String)
User selected a commit in file history — load its diff and close overlay.
ViewFileBlame(String)
Open the blame overlay for a specific repo-relative path.
FileBlameLoaded(Result<(String, Vec<BlameLine>), String>)
Background load of blame lines completed.
CloseFileBlame
Close the blame overlay.
BlameScrolled(f32)
User scrolled the blame view.
DeleteFile(String)
Show delete-confirmation banner for a working-tree file.
ConfirmDeleteFile
User confirmed the deletion.
CancelDeleteFile
User cancelled the deletion.
DiffMultiWithWorkingTree(String, Vec<String>)
Diff multiple files from a specific commit against the current working tree.
CheckoutFileAtCommit(String, String)
Restore a single file from a specific commit to the working directory.
CheckoutMultiFilesAtCommit(String, Vec<String>)
Restore multiple files from a specific commit to the working directory.
CherryPickCommits(Vec<String>)
Cherry-pick a list of commits (by OID) onto the current branch.
RevertCommits(Vec<String>)
Revert a list of commits (by OID) in order.
CommitRangeDiffLoaded(Result<Vec<DiffInfo>, String>)
Combined range diff across multiple selected commits was loaded.
WindowResized(f32, f32)
The application window was resized.
WindowMoved(f32, f32)
The application window was moved.
OpenSettingsFile
Open the GUI settings file (settings.json) in the configured editor. Triggered by Ctrl/Cmd + , (like Zed).
ShiftArrowDown
Shift+Down arrow — extends range selection in the file list (if files are loaded) or in the commit log (fallback).
ShiftArrowUp
Shift+Up arrow — same as above but upward.
AnimationTick
Fired ~10× per second to advance loading-spinner animation frames. Only emitted while at least one tab is loading.
Noop
No-op (used for disabled buttons, etc.).
Trait Implementations§
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> 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