use serde::{Serialize, Deserialize};
use std::cmp::PartialEq;
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct UserPreferences {
general: GeneralUserPreferences,
project: ProjectUserPreferences,
analysis: AnalysisUserPreferences,
}
impl UserPreferences {
pub fn new() -> Self {
UserPreferences {
general: GeneralUserPreferences::new(),
project: ProjectUserPreferences::new(),
analysis: AnalysisUserPreferences:: new(),
}
}
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct GeneralUserPreferences {
open_previous_project_on_start: bool,
}
impl GeneralUserPreferences {
pub fn new() -> Self {
GeneralUserPreferences {
open_previous_project_on_start: true,
}
}
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct ProjectUserPreferences {
asset_file_action: AssetFileAction, rename_folder_on_name_change: bool, delete_on_exclude: bool, format_metdata_objects: bool, show_inherited_metadata: bool, }
impl ProjectUserPreferences {
pub fn new() -> Self {
ProjectUserPreferences {
asset_file_action: AssetFileAction::Move,
rename_folder_on_name_change: true,
delete_on_exclude: false,
format_metdata_objects: true,
show_inherited_metadata: false,
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Clone, Debug)]
pub enum AssetFileAction {
Move,
Copy,
Reference,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct AnalysisUserPreferences {
}
impl AnalysisUserPreferences {
pub fn new() -> Self {
AnalysisUserPreferences {}
}
}
#[cfg(test)]
#[path = "./user_preferences_test.rs"]
mod user_preferences_test;