pub struct RepoTab {Show 40 fields
pub repo_path: Option<PathBuf>,
pub repo_info: Option<RepoInfo>,
pub branches: Vec<BranchInfo>,
pub current_branch: Option<String>,
pub commits: Vec<CommitInfo>,
pub selected_commit: Option<usize>,
pub graph_rows: Vec<GraphRow>,
pub unstaged_changes: Vec<DiffInfo>,
pub staged_changes: Vec<DiffInfo>,
pub commit_files: Vec<DiffFileEntry>,
pub selected_commit_oid: Option<String>,
pub selected_file_index: Option<usize>,
pub is_loading_file_diff: bool,
pub selected_diff: Option<DiffInfo>,
pub commit_message: String,
pub stashes: Vec<StashEntry>,
pub remotes: Vec<RemoteInfo>,
pub show_commit_detail: bool,
pub new_branch_name: String,
pub show_branch_create: bool,
pub local_branches_expanded: bool,
pub remote_branches_expanded: bool,
pub stash_message: String,
pub pending_discard: Option<String>,
pub status_message: Option<String>,
pub error_message: Option<String>,
pub is_loading: bool,
pub context_menu_pos: (f32, f32),
pub context_menu: Option<ContextMenu>,
pub rename_branch_target: Option<String>,
pub rename_branch_input: String,
pub create_tag_target_oid: Option<String>,
pub create_tag_annotated: bool,
pub create_tag_name: String,
pub create_tag_message: String,
pub commit_scroll_offset: f32,
pub diff_scroll_offset: f32,
pub commit_display: Vec<(String, String, String)>,
pub has_more_commits: bool,
pub is_loading_more_commits: bool,
}Expand description
Per-repository state — one instance per open tab.
Fields§
§repo_path: Option<PathBuf>Path to the currently opened repository (workdir root).
repo_info: Option<RepoInfo>High-level information about the opened repository.
branches: Vec<BranchInfo>All branches (local + remote) in the repository.
current_branch: Option<String>Name of the currently checked-out branch.
commits: Vec<CommitInfo>Commit log (newest first).
selected_commit: Option<usize>Index into commits of the currently selected commit.
graph_rows: Vec<GraphRow>Per-commit graph layout rows for branch visualisation.
unstaged_changes: Vec<DiffInfo>Unstaged (working-directory) changes.
staged_changes: Vec<DiffInfo>Staged (index) changes.
commit_files: Vec<DiffFileEntry>Lightweight file list for the currently selected commit (path + status only).
selected_commit_oid: Option<String>OID of the currently selected commit (needed for on-demand file diff loading).
selected_file_index: Option<usize>Index of the selected file in commit_files.
is_loading_file_diff: boolTrue while a single-file diff is being loaded.
selected_diff: Option<DiffInfo>The diff currently displayed in the diff viewer panel.
commit_message: StringText in the commit-message input.
stashes: Vec<StashEntry>All stash entries.
remotes: Vec<RemoteInfo>Configured remotes.
show_commit_detail: boolWhether the commit detail pane is visible.
new_branch_name: StringText in the “new branch name” input.
show_branch_create: boolWhether the inline branch-creation UI is visible.
local_branches_expanded: boolWhether the Local branches section is expanded.
remote_branches_expanded: boolWhether the Remote branches section is expanded.
stash_message: StringText in the “stash message” input.
pending_discard: Option<String>File path pending discard confirmation (None = no pending discard).
status_message: Option<String>Transient status-bar message (e.g. “Branch created”).
error_message: Option<String>Error message shown in a banner / toast.
is_loading: boolTrue while an async operation is in flight.
Cursor position captured at the moment the context menu was opened. Used to anchor the menu so it doesn’t follow the mouse after appearing.
Currently open context menu, if any.
rename_branch_target: Option<String>Name of the branch currently being renamed (None = not renaming).
rename_branch_input: StringThe new name being typed in the rename input.
create_tag_target_oid: Option<String>When Some(oid), the tag-creation inline form is visible, targeting that OID.
create_tag_annotated: boolTrue when creating an annotated tag; false for a lightweight tag.
create_tag_name: StringThe tag name the user is typing.
create_tag_message: StringThe annotated tag message the user is typing (only used when create_tag_annotated is true).
commit_scroll_offset: f32Current scroll offset of the commit log in pixels.
Tracked via on_scroll so virtual scrolling can render only the
visible window of rows.
diff_scroll_offset: f32Current scroll offset of the diff viewer in pixels.
commit_display: Vec<(String, String, String)>Pre-computed display strings for each commit:
(truncated_summary, relative_time, truncated_author).
Computed once when commits load to avoid per-frame string allocations.
has_more_commits: boolWhether there are potentially more commits to load beyond those already shown.
is_loading_more_commits: boolGuard: true while a background load-more task is in flight (prevents duplicates).
Implementations§
Source§impl RepoTab
impl RepoTab
Sourcepub fn display_name(&self) -> &str
pub fn display_name(&self) -> &str
Display name for the tab (last path component, or “New Tab”).
Sourcepub fn apply_payload(&mut self, payload: RepoPayload, path: PathBuf)
pub fn apply_payload(&mut self, payload: RepoPayload, path: PathBuf)
Apply a full repo payload to this tab, resetting transient UI state.
Auto Trait Implementations§
impl Freeze for RepoTab
impl RefUnwindSafe for RepoTab
impl Send for RepoTab
impl Sync for RepoTab
impl Unpin for RepoTab
impl UnsafeUnpin for RepoTab
impl UnwindSafe for RepoTab
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
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> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.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<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more