1use crate::ErrorReason;
2use std::borrow::Cow;
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum EnvarError {
7 #[error("Cannot parse environment variable {varname} (value = {value:?}) as {typename}")]
8 ParseError {
9 varname: Cow<'static, str>,
10 typename: &'static str,
11 value: String,
12 reason: ErrorReason,
13 },
14
15 #[error("Environment variable {0} is not set")]
16 NotSet(Cow<'static, str>),
17
18 #[error("Environment variable {0} is not set and default factory returned None")]
24 TryDefault(Cow<'static, str>),
25}