You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
use envy::{from_env, Result as EnvResult};
|
|
|
|
use serde::{de::DeserializeOwned, Deserialize};
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
pub struct DefaultEnv {
|
|
|
|
#[serde(default = "default_host")]
|
|
|
|
pub u_server: String,
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn load_env<E: DeserializeOwned>() -> EnvResult<E> {
|
|
|
|
dot();
|
|
|
|
from_env()
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn load_env_default() -> EnvResult<DefaultEnv> {
|
|
|
|
dot();
|
|
|
|
from_env()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn dot() {
|
|
|
|
let envs = [".env", ".env.private"];
|
|
|
|
for envfile in &envs {
|
|
|
|
dotenv::from_filename(envfile).ok();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn default_host() -> String {
|
|
|
|
"ortem.xyz".to_string()
|
|
|
|
}
|