1mod default;
2mod setter;
3mod flag;
4
5pub use default::DefaultArg;
6pub use setter::SetterArg;
7pub use flag::FlagArg;
8
9#[derive(Debug, Clone, PartialEq, Eq)]
10pub struct ArgumentValue {
11 pub name: String,
12 pub value: String
13}
14
15pub trait Argument {
16 fn get_name(&self) -> &String;
17 fn get_aliases(&self) -> &Vec<String>;
18 fn add_alias(&mut self, alias: String);
19 fn is_optional(&self) -> bool;
20 fn try_parse(&self, args: &Vec<String>) -> Option<(Vec<String>, ArgumentValue)>;
21}