use crate::AppConfig; impl AppConfig { pub fn nats_url(&self) -> Option { self.env.get("NATS_URL").cloned() } pub fn nats_token(&self) -> Option { self.env.get("NATS_TOKEN").cloned() } pub fn nats_stream_name(&self) -> String { self.env .get("NATS_STREAM_NAME") .cloned() .unwrap_or_else(|| "ROOM_EVENTS".to_string()) } pub fn nats_max_deliver(&self) -> i64 { self.env .get("NATS_MAX_DELIVER") .and_then(|v| v.parse().ok()) .unwrap_or(3) } pub fn nats_ack_wait_secs(&self) -> u64 { self.env .get("NATS_ACK_WAIT_SECS") .and_then(|v| v.parse().ok()) .unwrap_or(10) } pub fn nats_max_age_secs(&self) -> u64 { self.env .get("NATS_MAX_AGE_SECS") .and_then(|v| v.parse().ok()) .unwrap_or(86_400) } pub fn nats_buffer_size(&self) -> usize { self.env .get("NATS_BUFFER_SIZE") .and_then(|v| v.parse().ok()) .unwrap_or(256) } pub fn nats_is_enabled(&self) -> bool { self.nats_url().is_some() && self.nats_token().is_some() } }