commandor 0.1.0

CLI commands manager
Documentation
mod default;
mod setter;
mod flag;

pub use default::DefaultArg;
pub use setter::SetterArg;
pub use flag::FlagArg;

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ArgumentValue {
    pub name: String,
    pub value: String
}

pub trait Argument {
    fn get_name(&self) -> &String;
    fn get_aliases(&self) -> &Vec<String>;
    fn add_alias(&mut self, alias: String);
    fn is_optional(&self) -> bool;
    fn try_parse(&self, args: &Vec<String>) -> Option<(Vec<String>, ArgumentValue)>;
}