feat: init

This commit is contained in:
zhenyi
2026-06-07 11:30:56 +08:00
commit 563381c1ca
361 changed files with 41327 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
use crate::config::AppConfig;
use crate::error::{AppError, AppResult};
impl AppConfig {
pub fn nats_url(&self) -> AppResult<String> {
self.get_env::<String>("APP_NATS_URL")?
.filter(|s| !s.is_empty())
.ok_or_else(|| AppError::Config("APP_NATS_URL is not set".into()))
}
pub fn nats_username(&self) -> AppResult<Option<String>> {
self.get_env::<String>("APP_NATS_USERNAME")
}
pub fn nats_password(&self) -> AppResult<Option<String>> {
self.get_env::<String>("APP_NATS_PASSWORD")
}
pub fn nats_token(&self) -> AppResult<Option<String>> {
self.get_env::<String>("APP_NATS_TOKEN")
}
pub fn nats_tls_enabled(&self) -> AppResult<bool> {
self.get_env_or("APP_NATS_TLS_ENABLED", false)
}
pub fn nats_connection_timeout_secs(&self) -> AppResult<u64> {
self.get_env_or("APP_NATS_CONNECTION_TIMEOUT", 5)
}
pub fn nats_ping_interval_secs(&self) -> AppResult<u64> {
self.get_env_or("APP_NATS_PING_INTERVAL", 20)
}
pub fn nats_reconnect_delay_secs(&self) -> AppResult<u64> {
self.get_env_or("APP_NATS_RECONNECT_DELAY", 2)
}
pub fn nats_max_reconnects(&self) -> AppResult<usize> {
self.get_env_or("APP_NATS_MAX_RECONNECTS", 60usize)
}
pub fn nats_stream_prefix(&self) -> AppResult<String> {
self.get_env_or("APP_NATS_STREAM_PREFIX", "APPKS".to_string())
}
pub fn nats_default_ack_wait_secs(&self) -> AppResult<u64> {
self.get_env_or("APP_NATS_ACK_WAIT_SECS", 30)
}
pub fn nats_default_max_deliver(&self) -> AppResult<i64> {
self.get_env_or("APP_NATS_MAX_DELIVER", 5i64)
}
}