summaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2021-03-04 18:14:12 -0500
committerAdam T. Carpenter <atc@53hor.net>2021-03-04 18:14:12 -0500
commit0c63ae51d1221b8ecd9742c7d5580bd06551ecbb (patch)
tree5c87242c295f519252db57c0eb269058e8b959c2 /src/config.rs
parent1259dad8d561bd390262314035d5252905d1c12e (diff)
downloadtwinh-0c63ae51d1221b8ecd9742c7d5580bd06551ecbb.tar.xz
twinh-0c63ae51d1221b8ecd9742c7d5580bd06551ecbb.zip
did some templating, added some models
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs
new file mode 100644
index 0000000..7798967
--- /dev/null
+++ b/src/config.rs
@@ -0,0 +1,22 @@
+use once_cell::sync::Lazy;
+use std::{env::var, error::Error, net::SocketAddr};
+
+pub static INSTANCE: Lazy<AppConfig> =
+ Lazy::new(|| AppConfig::from_env().expect("Error loading config"));
+
+#[derive(Clone, Debug)]
+pub struct AppConfig {
+ pub addr: SocketAddr,
+ pub db_uri: String,
+}
+
+impl AppConfig {
+ pub fn from_env() -> Result<Self, Box<dyn Error>> {
+ let new = Self {
+ addr: var("TWINH_ADDR")?.parse()?,
+ db_uri: var("TWINH_DB_URI")?,
+ };
+
+ Ok(new)
+ }
+}