use super::ReloadSummary;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum ReloadFailurePolicy {
#[default]
KeepLastGood,
StopWatcher,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct ReloadOptions {
pub on_error: ReloadFailurePolicy,
pub emit_unchanged: bool,
}
impl Default for ReloadOptions {
fn default() -> Self {
Self {
on_error: ReloadFailurePolicy::KeepLastGood,
emit_unchanged: false,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct ReloadFailure {
pub error: String,
pub last_good_retained: bool,
pub watcher_stopped: bool,
}
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum ReloadEvent {
Applied(ReloadSummary),
Rejected(ReloadFailure),
}