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
80
#[cfg(test)]
#[path = "./types_test.rs"]
mod types_test;
use crate::errors::EnvmntError;
pub type EnvmntResult<T> = Result<T, EnvmntError>;
#[derive(Debug, Clone, Default)]
pub struct ListOptions {
pub separator: Option<String>,
pub ignore_empty: bool,
}
impl ListOptions {
pub fn new() -> ListOptions {
Default::default()
}
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum ExpansionType {
UnixPrefix,
UnixBrackets,
Unix,
Windows,
OS,
All,
UnixBracketsWithDefaults,
}
#[derive(Debug, Copy, Clone)]
pub struct ExpandOptions {
pub expansion_type: Option<ExpansionType>,
pub default_to_empty: bool,
}
impl ExpandOptions {
pub fn new() -> ExpandOptions {
ExpandOptions {
expansion_type: None,
default_to_empty: true,
}
}
pub fn clone_with_expansion_type(
self: &ExpandOptions,
expansion_type: ExpansionType,
) -> ExpandOptions {
let mut options = self.clone();
options.expansion_type = Some(expansion_type);
options
}
}