pub struct HostEntry {Show 18 fields
pub alias: String,
pub hostname: String,
pub user: String,
pub port: u16,
pub identity_file: String,
pub proxy_jump: String,
pub source_file: Option<PathBuf>,
pub tags: Vec<String>,
pub provider_tags: Vec<String>,
pub has_provider_tags: bool,
pub provider: Option<String>,
pub tunnel_count: u16,
pub askpass: Option<String>,
pub vault_ssh: Option<String>,
pub vault_addr: Option<String>,
pub certificate_file: String,
pub provider_meta: Vec<(String, String)>,
pub stale: Option<u64>,
}Expand description
Convenience view for the TUI — extracted from a HostBlock.
Fields§
§alias: String§hostname: String§user: String§port: u16§identity_file: String§proxy_jump: String§source_file: Option<PathBuf>If this host comes from an included file, the file path.
User-added tags from purple:tags comment.
Provider-synced tags from purple:provider_tags comment.
Whether a purple:provider_tags comment exists (distinguishes “never migrated” from “empty”).
provider: Option<String>Cloud provider label from purple:provider comment (e.g. “do”, “vultr”).
tunnel_count: u16Number of tunnel forwarding directives.
askpass: Option<String>Password source from purple:askpass comment (e.g. “keychain”, “op://…”, “pass:…”).
vault_ssh: Option<String>Vault SSH certificate signing role from purple:vault-ssh comment.
vault_addr: Option<String>Optional Vault HTTP endpoint from purple:vault-addr comment. When
set, purple passes it as VAULT_ADDR to the vault subprocess for
this host’s signing, overriding the parent shell. Empty = inherit env.
certificate_file: StringCertificateFile directive value (e.g. “~/.ssh/my-cert.pub”).
provider_meta: Vec<(String, String)>Provider metadata from purple:meta comment (region, plan, etc.).
stale: Option<u64>Unix timestamp when the host was marked stale (disappeared from provider sync).
Implementations§
Source§impl HostEntry
impl HostEntry
Sourcepub fn ssh_command(&self, config_path: &Path) -> String
pub fn ssh_command(&self, config_path: &Path) -> String
Build the SSH command string for this host.
Includes -F <config_path> when the config is non-default so the alias
resolves correctly when pasted into a terminal.
Shell-quotes both the config path and alias to prevent injection.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HostEntry
impl RefUnwindSafe for HostEntry
impl Send for HostEntry
impl Sync for HostEntry
impl Unpin for HostEntry
impl UnsafeUnpin for HostEntry
impl UnwindSafe for HostEntry
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