Skip to content

Commit b04a289

Browse files
committed
\dotenv-rs#61 Address review comments
1 parent b6357f9 commit b04a289

File tree

6 files changed

+16
-13
lines changed

6 files changed

+16
-13
lines changed

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
target/
22
Cargo.lock
3-
.idea
4-
wip

dotenv_codegen/tests/ui/dotenv_no_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ extern crate dotenv_codegen;
33

44
pub fn main() {
55
dotenv!();
6-
}
6+
}

dotenv_codegen/tests/ui/dotenv_or_default_no_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ extern crate dotenv_codegen;
33

44
pub fn main() {
55
dotenv_or_default!();
6-
}
6+
}

dotenv_codegen/tests/ui/dotenv_or_default_three_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ extern crate dotenv_codegen;
33

44
pub fn main() {
55
dotenv_or_default!("a", "b", "c");
6-
}
6+
}

dotenv_codegen/tests/ui/dotenv_three_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ extern crate dotenv_codegen;
33

44
pub fn main() {
55
dotenv!("a", "b", "c");
6-
}
6+
}

dotenv_codegen_implementation/src/lib.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,19 @@ pub fn dotenv_or_default(input: TokenStream) -> TokenStream {
3737

3838
// Either everything was fine, or we didn't find an .env file (which we ignore)
3939
let (var_name, second_value) = expand_env(input);
40-
let default_val = match second_value {
41-
Some(default) => default,
42-
None => panic!("Missing default value for: {}", var_name),
43-
};
4440

45-
match env::var(var_name) {
46-
Ok(val) => quote!(#val).into(),
47-
Err(VarError::NotPresent) | Err(VarError::NotUnicode(_)) => quote!(#default_val).into(),
41+
match second_value {
42+
Some(default) => match env::var(var_name) {
43+
Ok(val) => quote!(#val).into(),
44+
Err(VarError::NotPresent) | Err(VarError::NotUnicode(_)) => quote!(#default).into(),
45+
},
46+
None => {
47+
let err_msg = format!("Missing default value for: {}", var_name);
48+
(quote! {
49+
compile_error!(#err_msg)
50+
})
51+
.into()
52+
}
4853
}
4954
}
5055

0 commit comments

Comments
 (0)