use serde::{Deserialize, Serialize};
use crate::settings::mirror::Mirror;
use crate::settings::profile::Profile;
use crate::settings::server::Server;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Settings {
pub local_repository: Option<String>,
pub interactive_mode: Option<bool>,
pub offline: Option<bool>,
#[serde(rename = "pluginGroups")]
pub plugin_groups: Option<Vec<String>>,
#[serde(rename = "servers")]
pub servers: Option<Vec<Server>>,
#[serde(rename = "mirrors")]
pub mirrors: Option<Vec<Mirror>>,
#[serde(rename = "profiles")]
pub profiles: Option<Vec<Profile>>,
#[serde(rename = "activeProfiles")]
pub active_profiles: Option<Vec<String>>,
}
impl Default for Settings {
fn default() -> Self {
Self {
local_repository: None,
interactive_mode: Some(true),
offline: Some(false),
plugin_groups: None,
servers: None,
mirrors: None,
profiles: None,
active_profiles: None,
}
}
}