use serde::{Deserialize, Serialize};
#[derive(Default, Serialize, Deserialize, Clone, Copy, Debug, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum ProviderType {
#[default]
Remote,
Local,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Settings {
pub machine_name: Option<String>,
pub auto_append_gitignore: Option<bool>,
#[serde(alias = "user_id")]
pub anonymous_id: Option<String>,
pub collect_telemetry: Option<bool>,
pub editor: Option<String>,
}
#[derive(Deserialize, Clone)]
pub(crate) struct OldAppConfig {
pub api_endpoint: String,
pub api_key: Option<String>,
pub machine_name: Option<String>,
pub auto_append_gitignore: Option<bool>,
}
impl From<OldAppConfig> for Settings {
fn from(old_config: OldAppConfig) -> Self {
Settings {
machine_name: old_config.machine_name,
auto_append_gitignore: old_config.auto_append_gitignore,
anonymous_id: Some(uuid::Uuid::new_v4().to_string()),
collect_telemetry: Some(true),
editor: Some("nano".to_string()),
}
}
}