ignite 0.1.6

ignite serves the role as a "batteries included" addon to stdlib providing useful stuff and higher level functions along with abstractions.
Documentation
use aesthetics;
use argument::Argument;
use std::string::String;
use std::{
    thread,
    time,
};
use str_util;

/// Automagically generate a help text for your CLI app.
pub fn help(usage: &'static str, arg_array: Vec<Argument>) {
    let cli = aesthetics::CLI::new();

    // Set the print pause duration.
    let duration = time::Duration::from_millis(25);

    // Make a new Vec to store each line of the help text.
    let mut help: Vec<String> = Vec::new();

    // Add the border, template and the usage text.
    help.push(format!("{}{}", cli.border_horizontal('-', 1_f32), str_util::newline(),));

    // Push the usage guide lines.
    help.push(format!(
        "{}{}{}",
        String::from("Usage:\n    "),
        String::from(usage),
        str_util::newline(),
    ));

    help.push(String::from("Flags:"));

    // Add every argument.
    for argument in arg_array {
        help.push(format!("    -{} # {}", argument.identifier().to_string(), argument.description()));
    }

    // Add a newline at the end.
    help.push(str_util::newline());

    // Then finally print everything.
    for line in &help {
        println!("{}", &line);
        thread::sleep(duration);
    }
}