use std::path::{Path, PathBuf};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct StateConfig {
root: PathBuf,
}
impl StateConfig {
pub fn new(root: PathBuf) -> Self {
Self { root }
}
pub fn root(&self) -> &Path {
&self.root
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum HostKeyPolicy {
Strict,
Tofu,
AcceptAll,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct SecurityConfig {
pub host_key_policy: HostKeyPolicy,
}
impl Default for SecurityConfig {
fn default() -> Self {
Self {
host_key_policy: HostKeyPolicy::Tofu,
}
}
}
#[cfg_attr(feature = "storage", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct AppConfig {
pub stealth_secret: Option<String>,
pub relay_url: Option<String>,
pub log_level: String,
pub wormhole_timeout: u64,
pub default_user: Option<String>,
}
impl Default for AppConfig {
fn default() -> Self {
Self {
stealth_secret: None,
relay_url: None,
log_level: "info".to_string(),
wormhole_timeout: 3600, default_user: None,
}
}
}