purple_ssh/
ssh_context.rs1use std::path::{Path, PathBuf};
2
3pub struct SshContext<'a> {
5 pub alias: &'a str,
6 pub config_path: &'a Path,
7 pub askpass: Option<&'a str>,
8 pub session_password: Option<&'a str>,
11 pub bw_session: Option<&'a str>,
12 pub has_tunnel: bool,
13 pub trust_new_host_key: bool,
17 pub security_key: &'a crate::security_key::SecurityKeyRun,
20 pub env: &'a crate::runtime::env::Env,
21}
22
23pub struct OwnedSshContext {
25 pub alias: String,
26 pub config_path: PathBuf,
27 pub askpass: Option<String>,
28 pub session_password: Option<String>,
29 pub bw_session: Option<String>,
30 pub has_tunnel: bool,
31 pub trust_new_host_key: bool,
32 pub security_key: crate::security_key::SecurityKeyRun,
33 pub env: std::sync::Arc<crate::runtime::env::Env>,
34}
35
36impl OwnedSshContext {
37 pub fn borrow(&self) -> SshContext<'_> {
39 SshContext {
40 alias: &self.alias,
41 config_path: &self.config_path,
42 askpass: self.askpass.as_deref(),
43 session_password: self.session_password.as_deref(),
44 bw_session: self.bw_session.as_deref(),
45 has_tunnel: self.has_tunnel,
46 trust_new_host_key: self.trust_new_host_key,
47 security_key: &self.security_key,
48 env: &self.env,
49 }
50 }
51}