pub enum Screen {
Show 39 variants
HostList,
AddHost,
EditHost {
alias: String,
},
ConfirmDelete {
alias: String,
},
Help {
return_screen: Box<Screen>,
},
KeyList,
KeyDetail {
index: usize,
},
KeyPushPicker {
key_index: usize,
},
ConfirmKeyPush {
key_index: usize,
},
HostDetail {
index: usize,
},
TagPicker,
ThemePicker,
Providers,
ProviderForm {
id: ProviderConfigId,
},
ProviderLabelMigration {
provider: String,
},
TunnelList {
alias: String,
},
TunnelForm {
alias: String,
editing: Option<usize>,
},
TunnelHostPicker,
SnippetPicker {
target_aliases: Vec<String>,
},
SnippetForm {
target_aliases: Vec<String>,
editing: Option<usize>,
},
SnippetOutput {
snippet_name: String,
target_aliases: Vec<String>,
},
SnippetParamForm {
snippet: Snippet,
target_aliases: Vec<String>,
},
ConfirmHostKeyReset {
alias: String,
hostname: String,
known_hosts_path: String,
askpass: Option<String>,
},
FileBrowser {
alias: String,
},
Containers {
alias: String,
},
ContainerHostPicker,
ContainerLogs {
alias: String,
container_id: String,
container_name: String,
body: Vec<String>,
fetched_at: u64,
error: Option<String>,
scroll: u16,
last_render_height: u16,
search: Option<ContainerLogsSearch>,
},
ConfirmContainerRestart {
alias: String,
container_id: String,
container_name: String,
project: Option<String>,
uptime: Option<String>,
},
ConfirmContainerStop {
alias: String,
container_id: String,
container_name: String,
project: Option<String>,
uptime: Option<String>,
},
ContainerExecPrompt {
alias: String,
container_id: String,
container_name: String,
query: String,
},
ConfirmStackRestart {
alias: String,
project: String,
members: Vec<StackMember>,
},
ConfirmHostRestartAll {
alias: String,
members: Vec<StackMember>,
},
ConfirmHostStopAll {
alias: String,
members: Vec<StackMember>,
},
ConfirmImport {
count: usize,
},
ConfirmPurgeStale {
aliases: Vec<String>,
provider: Option<String>,
},
ConfirmVaultSign {
signable: Vec<VaultSignTarget>,
},
Welcome {
has_backup: bool,
host_count: usize,
known_hosts_count: usize,
},
BulkTagEditor,
WhatsNew(WhatsNewState),
}Expand description
Which screen is currently displayed.
Variants§
HostList
AddHost
EditHost
ConfirmDelete
Help
KeyList
KeyDetail
KeyPushPicker
Multi-host picker reached from the Keys tab by pressing p.
key_index points into app.keys.list for the key to push. The picker
shows hosts with checkbox selection; hosts whose vault_ssh role
is configured are dimmed and not selectable (Vault SSH workflow
uses signed certs, not authorized_keys appends).
ConfirmKeyPush
Destructive confirm shown after the picker commits. Footer renders
action verbs both sides via design::confirm_footer_destructive.
On y the worker thread is spawned and the screen returns to
HostList; on n/Esc returns to the picker with selection intact.
The frozen alias list lives on app.keys.push.committed instead
of inside the Screen variant: keeping the vec out of the enum
prevents per-frame clones during overlay redraws and keeps the
Screen payload uniformly small.
HostDetail
TagPicker
ThemePicker
Providers
ProviderForm
Fields
ProviderLabelMigration
Step 1 of the lazy add-second-config flow: ask the user to pick a
label for the existing (bare) config of provider before opening
the new-config form. The chosen label lives on
app.providers.pending_label_migration until step 2 saves both
configs together.
TunnelList
TunnelForm
TunnelHostPicker
Host picker reached from the Tunnels overview when adding a new
tunnel: the user must choose a host before the tunnel form opens.
On confirm, transitions to TunnelForm { alias, editing: None }.
SnippetPicker
SnippetForm
SnippetOutput
SnippetParamForm
ConfirmHostKeyReset
FileBrowser
Containers
ContainerHostPicker
Picker reached from the containers overview when adding a host
to the cache (a). Lists hosts that have no cache entry yet;
on Enter, spawns a docker ps listing for the chosen host and
returns to the overview.
ContainerLogs
One-shot logs viewer for a single container. body is empty
while the SSH docker logs --tail 200 call is in flight; once
the result lands the lines populate it. scroll is line-based,
0 is the top. last_render_height is written by the renderer
each frame so the logs-arrival path and G can compute the
tail-anchored scroll without guessing the visible-area size.
Fields
search: Option<ContainerLogsSearch>/ search state. None when no search is active.
ConfirmContainerRestart
Confirm dialog for K (kick). restart a single running
container. Reuses route_confirm_key so y/n/Esc are the only
effective inputs; stake-test footer phrases the verb on both
sides.
Fields
ConfirmContainerStop
Confirm dialog for S (stop). stop a single running container.
Same key contract as ConfirmContainerRestart.
Fields
ContainerExecPrompt
Single-line prompt for an arbitrary command to run inside the
container via docker exec -it. Submit hits the existing
pending_container_exec flow with the typed command in place
of the default bash || sh.
ConfirmStackRestart
Confirm dialog for Ctrl-K (stack kick). Restarts every running
member of a compose stack on a single host, sequentially. The
drain queue + 30s cache TTL pace the work; we accept the trivial
per-tick interleaving.
ConfirmHostRestartAll
Confirm dialog for K pressed on a host-divider row in the
containers overview. Restarts every running container on the
host, ignoring compose-project boundaries. Shares the bulk
confirm shape with ConfirmStackRestart.
ConfirmHostStopAll
Confirm dialog for S pressed on a host-divider row. Stops
every running container on the host, sequentially.
ConfirmImport
ConfirmPurgeStale
ConfirmVaultSign
Fields
signable: Vec<VaultSignTarget>Precomputed list of hosts that resolve to a Vault SSH role. Computed
when the user presses V. certificate_file is the host’s existing
CertificateFile directive (empty when unset) so the background
worker checks renewal against the configured cert path.
Welcome
BulkTagEditor
Bulk tag editor: tri-state checkbox picker that edits tags across
all hosts in multi_select in one go. Opened via t when a
multi-host selection is active.
WhatsNew(WhatsNewState)
What’s New overlay: shows recent changelog sections to the user
after an upgrade. Opened via the upgrade toast or n key.
Implementations§
Trait Implementations§
impl StructuralPartialEq for Screen
Auto Trait Implementations§
impl Freeze for Screen
impl RefUnwindSafe for Screen
impl Send for Screen
impl Sync for Screen
impl Unpin for Screen
impl UnsafeUnpin for Screen
impl UnwindSafe for Screen
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> 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