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.
29 lines
572 B
29 lines
572 B
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() |
|
}
|
|
|