frenv/
lib.rs

1extern crate frenv_macro;
2
3pub use frenv_macro::FromEnv;
4use thiserror::Error;
5
6pub trait FromEnv: Sized {
7    fn from_env() -> Result<Self, FromEnvironmentError>;
8}
9
10#[derive(Debug, Error)]
11pub enum FromEnvironmentError {
12    #[error("{0} must be set")]
13    VarNotPresent(String),
14    #[error("{0} type cannot be parseable into {1}")]
15    InvalidType(String, String),
16}