1 use Arg;
2 
3 #[derive(Debug)]
4 pub struct Switched<'b> {
5     pub short: Option<char>,
6     pub long: Option<&'b str>,
7     pub aliases: Option<Vec<(&'b str, bool)>>, // (name, visible)
8     pub disp_ord: usize,
9     pub unified_ord: usize,
10 }
11 
12 impl<'e> Default for Switched<'e> {
default() -> Self13     fn default() -> Self {
14         Switched {
15             short: None,
16             long: None,
17             aliases: None,
18             disp_ord: 999,
19             unified_ord: 999,
20         }
21     }
22 }
23 
24 impl<'n, 'e, 'z> From<&'z Arg<'n, 'e>> for Switched<'e> {
from(a: &'z Arg<'n, 'e>) -> Self25     fn from(a: &'z Arg<'n, 'e>) -> Self {
26         a.s.clone()
27     }
28 }
29 
30 impl<'e> Clone for Switched<'e> {
clone(&self) -> Self31     fn clone(&self) -> Self {
32         Switched {
33             short: self.short,
34             long: self.long,
35             aliases: self.aliases.clone(),
36             disp_ord: self.disp_ord,
37             unified_ord: self.unified_ord,
38         }
39     }
40 }
41