1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//! Util types and functions to quickly and easy set up an HTTP server from environment variables.
//!
//! See [`Config::init()`] for examples.
use ;
use var;
use Debug;
use FromStr;
pub use Config;
/// Read boolean environment variable, accepting "0" or "false" as false
/// values, and "1" or "true" values as true.
/// # Examples
/// ```
/// use std::env;
/// use server_env_config::env_bool;
///
/// // Right values
/// env::set_var("BOOL_ENV", "true");
/// assert!(matches!(env_bool("BOOL_ENV", false), Ok(true)));
/// env::set_var("BOOL_ENV", "0");
/// assert!(matches!(env_bool("BOOL_ENV", true), Ok(false)));
///
/// // No value set
/// assert!(matches!(env_bool("NOT_SET_ENV", true), Ok(true)));
///
/// // Wrong value
/// env::set_var("BOOL_ENV", "not a boolean");
/// assert!(env_bool("BOOL_ENV", false).is_err());
/// ```
/// Get a parsable value from an env value like a number,
/// otherwise return `default_value`.
/// # Examples
/// ```
/// use std::env;
/// use server_env_config::env_parsable;
///
/// // Right values
/// env::set_var("NUM_ENV", "1234");
/// assert!(matches!(env_parsable::<u16>("NUM_ENV", 1), Ok(1234)));
///
/// // No value set
/// assert!(matches!(env_parsable::<u32>("ENV_NOT_SET", 1), Ok(1)));
///
/// // Wrong value
/// env::set_var("LONG_ENV", "not a number");
/// assert!(env_parsable::<i64>("LONG_ENV", 1).is_err());
/// ```