use serde::Deserialize;
use serde::Serialize;
use crate::colors::Colors;
use crate::ser::tags::Tag;
use crate::ser::tasks::Tasks;
use crate::ser::tasks::TasksMeta;
use crate::ser::view::View;
#[derive(Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct UiConfig {
#[serde(default)]
pub colors: Colors,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub toggle_tag: Option<Tag>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub views: Vec<View>,
}
#[derive(Debug, Default, Deserialize, PartialEq, Eq, Serialize)]
pub struct UiState {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub selected_tasks: Vec<Option<usize>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selected_view: Option<usize>,
}
#[derive(Debug, Default, PartialEq)]
pub struct TaskState {
pub tasks_meta: TasksMeta,
pub tasks: Tasks,
}