Expand description
Use this crate to parse environment variables into any type that
implements FromStr
.
§Basic usage
std::env::set_var("PORT", "9001");
let port: u16 = strict_env::parse("PORT")?;
assert_eq!(port, 9001);
§Usage with remote types
If you need to parse a type that originates from an external crate
and does not implement FromStr
, you can wrap
the value in a newtype that implements the trait.
// std::time::Duration does not implement FromStr!
struct ConfigDuration(std::time::Duration);
// Custom implementation using the awesome humantime crate
impl std::str::FromStr for ConfigDuration {
type Err = humantime::DurationError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
let inner = humantime::parse_duration(s)?;
Ok(Self(inner))
}
}
// Now we can use strict_env! (But we might have to use the turbofish.)
std::env::set_var("CACHE_DURATION", "2 minutes");
let cache_duration = strict_env::parse::<ConfigDuration>("CACHE_DURATION")?.0;
assert_eq!(cache_duration.as_secs(), 120);
Enums§
- Error
- Error type for this library.
Functions§
- parse
- Parse an environment variable into a value that implements
FromStr
. - parse_
optional - Like
parse
, but allows the environment variable to be missing or empty. - parse_
or_ default - Like
parse
, but falls back to a default value when the environment variable is missing or empty.