use nitro_shared::lang::Language;
#[cfg(feature = "schema")]
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug)]
pub struct ConfigPreferences {
pub language: Language,
}
#[derive(Deserialize, Serialize, Default)]
#[cfg_attr(feature = "schema", derive(JsonSchema))]
#[serde(default)]
pub struct PrefDeser {
pub repositories: RepositoriesDeser,
pub language: Language,
}
#[derive(Deserialize, Serialize)]
#[cfg_attr(feature = "schema", derive(JsonSchema))]
pub struct RepoDeser {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default)]
pub disable: bool,
}
#[derive(Deserialize, Serialize)]
#[cfg_attr(feature = "schema", derive(JsonSchema))]
#[serde(default)]
pub struct RepositoriesDeser {
#[serde(skip_serializing_if = "Vec::is_empty")]
pub preferred: Vec<RepoDeser>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub backup: Vec<RepoDeser>,
pub enable_core: bool,
pub enable_std: bool,
}
impl Default for RepositoriesDeser {
fn default() -> Self {
Self {
preferred: Vec::new(),
backup: Vec::new(),
enable_core: true,
enable_std: true,
}
}
}