use crate::health::{HealthCheck, HealthCheckResult, HealthState};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
pub struct ConfigReloadHealthCheck {
config_ok: Arc<AtomicBool>,
}
impl ConfigReloadHealthCheck {
pub fn new(config_ok: Arc<AtomicBool>) -> Self {
ConfigReloadHealthCheck { config_ok }
}
}
impl HealthCheck for ConfigReloadHealthCheck {
fn type_(&self) -> &str {
"CONFIG_RELOAD"
}
fn result(&self) -> HealthCheckResult {
let state = if self.config_ok.load(Ordering::Relaxed) {
HealthState::Healthy
} else {
HealthState::Error
};
HealthCheckResult::builder().state(state).build()
}
}