diff options
-rw-r--r-- | src/app/freq.rs | 7 | ||||
-rw-r--r-- | src/main.rs | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/app/freq.rs b/src/app/freq.rs index 9446b50..6d80f2e 100644 --- a/src/app/freq.rs +++ b/src/app/freq.rs @@ -69,9 +69,10 @@ pub fn freq(args: &ArgMatches) { let mut stats: Vec<(String, Person)> = stats.into_iter().collect(); stats.sort_by(|&(_, ref a), &(_, ref b)| b.words.cmp(&a.words)); - for &(ref name, ref stat) in stats.iter() { + let count = value_t!(args, "count", usize).unwrap_or(stats.len()); + for &(ref name, ref stat) in stats.iter().take(count) { let _ = write!(&mut output, - "{}:\n\tTotal lines: {}\n\tLines without alphabetic characters: {}\n\tTotal words: {}\n\tWords per line: {}\n", - name, stat.lines, stat.lines - stat.alpha_lines, stat.words, stat.words as f32 / stat.lines as f32); + "{}:\n\tTotal lines: {}\n\tLines without alphabetic characters: {}\n\tTotal words: {}\n\tWords per line: {}\n", + name, stat.lines, stat.lines - stat.alpha_lines, stat.words, stat.words as f32 / stat.lines as f32); } } diff --git a/src/main.rs b/src/main.rs index 6c87367..11f007f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -83,7 +83,11 @@ fn main() { .subcommand(SubCommand::with_name("convert") .about("Convert from a source to a target format")) .subcommand(SubCommand::with_name("freq") - .about("Analyse the activity of users by certain metrics")) + .about("Analyse the activity of users by certain metrics") + .arg(Arg::with_name("count") + .help("The number of items to be displayed") + .takes_value(true) + .long("count"))) .subcommand(SubCommand::with_name("seen") .about("Print the last line a nick was active") .arg(Arg::with_name("nick") |