kaira 0.1.0

A Declarative and Deterministic Command Line Parser
Documentation

pub struct Option {
    std::string::String key;
}

pub struct Flag {
}


pub struct Parser {
    Vec<Option> option_array;
    Vec<Flag> flag_array;
    usize narg;
    Vec<Box<Parser>> sub_parser_array;
};

impl Parser {
    pub fn new() -> Parser {
        Parser {
            option_array: Vec::new(),
            flag_array: Vec::new(),
            narg: 0,
            sub_parser_array: Vec::new(),
        }
    }

    pub fn add_option(&mut self, option: Option) {
        self.option_array.push(option);
    }

    pub fn add_flag(&mut self, flag: Flag) {
        self.flag_array.push(flag);
    }

    pub fn add_sub_parser(&mut self, parser: Parser) {
        self.sub_parser_array.push(Box::new(parser));
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_alphanumeric() {
        let key = "--key";
        assert_eq!(is_key(key), true);
    }
}