pub mod query_builder;
pub mod sql;
use std::env::var;
use tokio::time::Duration;
pub fn parse_env_reference(uri: &str) -> Option<String> {
uri.strip_prefix("${")
.and_then(|value| value.strip_suffix('}'))
.map(str::to_string)
}
pub fn resolve_postgres_uri(uri: &str) -> String {
if let Some(env_name) = parse_env_reference(uri) {
var(env_name).unwrap_or_else(|_| uri.to_string())
} else {
uri.to_string()
}
}
pub fn parse_secs_or_default(value: Option<&String>, default_secs: u64) -> Duration {
Duration::from_secs(
value
.and_then(|v| v.parse::<u64>().ok())
.unwrap_or(default_secs),
)
}
pub fn parse_usize(value: &str) -> Option<usize> {
value.parse().ok()
}