#![warn(missing_docs)]
use std::{collections::HashMap, sync::Arc};
use instance::InstanceConfig;
use nitro_shared::id::{InstanceID, ProfileID};
use preferences::PrefDeser;
use profile::ProfileConfig;
#[cfg(feature = "schema")]
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use user::UserConfig;
pub mod instance;
pub mod package;
pub mod preferences;
pub mod profile;
pub mod user;
#[derive(Deserialize, Serialize, Default)]
#[cfg_attr(feature = "schema", derive(JsonSchema))]
#[serde(default)]
pub struct ConfigDeser {
pub users: HashMap<String, UserConfig>,
pub default_user: Option<String>,
pub instances: HashMap<InstanceID, InstanceConfig>,
pub instance_groups: HashMap<Arc<str>, Vec<InstanceID>>,
pub profiles: HashMap<ProfileID, ProfileConfig>,
pub global_profile: Option<ProfileConfig>,
pub preferences: PrefDeser,
}