Added sorting code

This commit is contained in:
2019-12-26 23:22:32 +01:00
commit f1083cfa27
9 changed files with 445 additions and 0 deletions

63
src/env/commandlinearguments.rs vendored Normal file
View File

@@ -0,0 +1,63 @@
//! File: env/commandlinearguments.rs
//! Created On: Thu 26 Dec 2019 09:01:57 PM CET
//! Last Modfied: Thu 26 Dec 2019 09:01:57 PM CET
//! Author: Jali <jali@orca-central.de>
//! Description: Defines the command line arguments that were passed
use clap::ArgMatches;
use std::str::FromStr;
/**
* # Summary
* Stores the command line arguments from our
* service.
*/
pub struct CommandLineArguments {
pub no_of_balls: u32,
}
impl CommandLineArguments {
/**
* # Summary
* Creates a new instance of a CommandLineArguments object either from
* the command line or the default configuration
*
* # Returns
* A new ```CommandLineArguments``` object
*
* # Examples
*
* ```rust
* let cmdargs = CommandLineArguments::new();
* ```
*/
pub fn new() -> CommandLineArguments {
let matches = CommandLineArguments::parse_command_line();
CommandLineArguments {
no_of_balls: FromStr::from_str(matches.value_of("NOOFBALLS").unwrap_or("1000"))
.unwrap(),
}
}
/**
* # Summary
* Parses the command line and returns all matches that fit valid options.
*
* # Generics
* ## Lifetimeparm: 'a
* Assures the same lifetime to the return value than the command line.
*
* # Returns
* An *ArgMatches* struct, that contrains all matched arguments.
*/
fn parse_command_line<'a>() -> ArgMatches<'a> {
clap_app!(myapp =>
(version: "1.0.360.1")
(author: "Jali <jali@orca-central.de>")
(about: "A naïve algorithm to sort balls in a ballpit by colour")
(@arg NOOFBALLS: -n --noofballs +takes_value "Specifies the number of balls in the ballpit")
)
.get_matches()
}
}