pub struct App {Show 44 fields
pub should_quit: bool,
pub screen: Screen,
pub screen_stack: Vec<Screen>,
pub config: Config,
pub workspaces: Vec<WorkspaceConfig>,
pub active_workspace: Option<WorkspaceConfig>,
pub workspace_index: usize,
pub workspace_pane: WorkspacePane,
pub base_path: Option<PathBuf>,
pub repos_by_org: HashMap<String, Vec<OwnedRepo>>,
pub all_repos: Vec<OwnedRepo>,
pub orgs: Vec<String>,
pub local_repos: Vec<RepoEntry>,
pub operation_state: OperationState,
pub log_lines: Vec<String>,
pub repo_index: usize,
pub scroll_offset: usize,
pub filter_text: String,
pub filter_active: bool,
pub dry_run: bool,
pub error_message: Option<String>,
pub check_results: Vec<CheckEntry>,
pub checks_loading: bool,
pub sync_pull: bool,
pub setup_state: Option<SetupState>,
pub status_loading: bool,
pub last_status_scan: Option<Instant>,
pub stat_index: usize,
pub dashboard_table_state: TableState,
pub settings_index: usize,
pub settings_config_expanded: bool,
pub workspace_detail_scroll: u16,
pub tick_count: u64,
pub sync_log_entries: Vec<SyncLogEntry>,
pub log_filter: LogFilter,
pub sync_history: Vec<SyncHistoryEntry>,
pub show_sync_history: bool,
pub expanded_repo: Option<String>,
pub repo_commits: Vec<String>,
pub sync_log_index: usize,
pub changelog_commits: HashMap<String, Vec<String>>,
pub changelog_total: usize,
pub changelog_loaded: usize,
pub changelog_scroll: usize,
}Expand description
The application model (all TUI state).
Fields§
§should_quit: boolWhether the user has requested quit.
screen: ScreenActive screen.
screen_stack: Vec<Screen>Screen history for back navigation.
config: ConfigLoaded configuration.
workspaces: Vec<WorkspaceConfig>Available workspaces.
active_workspace: Option<WorkspaceConfig>Active workspace (selected or auto-selected).
workspace_index: usizeSelected index in workspace selector.
workspace_pane: WorkspacePaneFocused pane in the Workspaces screen.
base_path: Option<PathBuf>Base path for repos (derived from active workspace).
repos_by_org: HashMap<String, Vec<OwnedRepo>>Discovered repos grouped by org.
all_repos: Vec<OwnedRepo>All discovered repos (flat list).
orgs: Vec<String>Org names (sorted).
local_repos: Vec<RepoEntry>Local repo entries with status.
operation_state: OperationStateCurrent async operation state.
log_lines: Vec<String>Operation log lines (last N events).
repo_index: usizeSelected repo index in current view.
scroll_offset: usizeScroll offset for tables.
filter_text: StringFilter/search text.
filter_active: boolWhether filter input is active.
dry_run: boolWhether dry-run is toggled in command picker.
error_message: Option<String>Error message to display (clears on next keypress).
check_results: Vec<CheckEntry>Requirement check results (populated on InitCheck screen).
checks_loading: boolWhether checks are still running.
sync_pull: boolWhether to use pull mode for sync (vs fetch).
setup_state: Option<SetupState>Setup wizard state (active when on SetupWizard screen).
status_loading: boolWhether status scan is in progress.
last_status_scan: Option<Instant>When the last status scan completed (for auto-refresh cooldown).
stat_index: usizeSelected stat box index on dashboard (0-5) for ←/→ navigation.
dashboard_table_state: TableStateTable state for dashboard tab content (tracks selection + scroll offset).
settings_index: usizeSelected category index in settings screen (0 = Requirements, 1 = Options, 2+ = Workspaces).
settings_config_expanded: boolWhether the config TOML section is expanded in workspace detail.
workspace_detail_scroll: u16Scroll offset for the workspace detail right pane.
tick_count: u64Tick counter for driving animations on the Progress screen.
sync_log_entries: Vec<SyncLogEntry>Structured sync log entries (enriched data).
log_filter: LogFilterActive log filter for post-sync view.
sync_history: Vec<SyncHistoryEntry>Sync history (last N summaries for comparison).
show_sync_history: boolWhether sync history overlay is visible.
expanded_repo: Option<String>Expanded repo in post-sync view (for commit deep dive).
repo_commits: Vec<String>Commit log for expanded repo.
sync_log_index: usizeSelected index in the post-sync filterable log.
changelog_commits: HashMap<String, Vec<String>>Aggregated commits per repo for changelog view.
changelog_total: usizeTotal number of repos to fetch commits for in changelog.
changelog_loaded: usizeNumber of repos whose commits have been loaded for changelog.
changelog_scroll: usizeScroll offset for the changelog view.
Implementations§
Source§impl App
impl App
Sourcepub fn new(
config: Config,
workspaces: Vec<WorkspaceConfig>,
config_was_created: bool,
) -> Self
pub fn new( config: Config, workspaces: Vec<WorkspaceConfig>, config_was_created: bool, ) -> Self
Create a new App with the given config and workspaces.
Sourcepub fn select_workspace(&mut self, index: usize)
pub fn select_workspace(&mut self, index: usize)
Select a workspace and navigate to dashboard.
Navigate to a new screen, pushing current onto the stack.
Auto Trait Implementations§
impl Freeze for App
impl RefUnwindSafe for App
impl Send for App
impl Sync for App
impl Unpin for App
impl UnsafeUnpin for App
impl UnwindSafe for App
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> 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> 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