mod ops;
mod ops_get_set;
mod ser;
#[cfg(test)]
#[path = "ops_tests.rs"]
mod ops_tests;
#[cfg(test)]
#[path = "ops_auto_prune_tests.rs"]
mod ops_auto_prune_tests;
#[cfg(test)]
#[path = "ops_temp_tests.rs"]
mod ops_temp_tests;
use serde::{Deserialize, Serialize};
use crate::ttl::Ttl;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(default)]
pub struct Config {
pub editor: EditorConfig,
pub open: OpenConfig,
pub hooks: HooksConfig,
pub workspace: WorkspaceConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(default)]
pub struct WorkspaceConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub ttl: Option<Ttl>,
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub auto_prune: bool,
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub temp: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct HooksConfig {
#[serde(rename = "pre:open", skip_serializing_if = "Option::is_none", default)]
pub pre_open: Option<String>,
#[serde(rename = "post:open", skip_serializing_if = "Option::is_none", default)]
pub post_open: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(default)]
pub struct EditorConfig {
pub command: Option<String>,
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub background: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct OpenConfig {
pub editor: bool,
}
impl Default for OpenConfig {
fn default() -> Self {
Self { editor: true }
}
}
#[cfg(test)]
#[path = "mod_tests.rs"]
mod tests;