use crate::AppConfig;
use axum::response::IntoResponse;
pub trait VersionExt<PrivateCfg>: Send + Sync + 'static + Clone {
type Response: IntoResponse;
fn get_version(&self, cfg: &AppConfig<PrivateCfg>) -> Self::Response;
}
#[derive(Default, Debug, Clone, Copy)]
pub struct DefaultVersion;
impl<T> VersionExt<T> for DefaultVersion {
type Response = String;
fn get_version(&self, cfg: &AppConfig<T>) -> Self::Response {
cfg.observability_cfg.version.clone()
}
}