From d80cb7638f190ba9c640a2e88a597478e826430e Mon Sep 17 00:00:00 2001
From: DevDoggo <devdoggo@protonmail.com>
Date: Wed, 2 May 2018 01:36:16 +0200
Subject: [PATCH] Made the result-printing functions into a separate module.

---
 a2_guessing_game/src/lib.rs     |  1 +
 a2_guessing_game/src/main.rs    | 58 +++++++--------------------------
 a2_guessing_game/src/results.rs | 48 +++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 47 deletions(-)
 create mode 100644 a2_guessing_game/src/lib.rs
 create mode 100644 a2_guessing_game/src/results.rs

diff --git a/a2_guessing_game/src/lib.rs b/a2_guessing_game/src/lib.rs
new file mode 100644
index 0000000..d8a1cc5
--- /dev/null
+++ b/a2_guessing_game/src/lib.rs
@@ -0,0 +1 @@
+pub mod results;
diff --git a/a2_guessing_game/src/main.rs b/a2_guessing_game/src/main.rs
index 68af77b..f92e606 100644
--- a/a2_guessing_game/src/main.rs
+++ b/a2_guessing_game/src/main.rs
@@ -1,5 +1,6 @@
 extern crate rand;
 extern crate colored;
+extern crate guessing_game;
 
 use std::io;    //standard in-out
 use std::cmp::Ordering;
@@ -10,6 +11,7 @@ use rand::Rng;
 use std::io::Write; //seemingly needed to use io::stdout().flush()
 use colored::*;
 
+
 fn get_input() -> Result<u32, String> {
     //returns io::Result, this has .expect() method
     let mut guess = String::new();
@@ -26,49 +28,6 @@ fn get_input() -> Result<u32, String> {
     }
 }
 
-fn print_guesses(v: &Vec<(u32, String)>) {
-    let iterations = 2;
-    for _i in 0..iterations { 
-        println!("\nResults: Printing All\nAttempt | Guess");
-        for g in v {
-            println!("      {} | {}", g.0, g.1);
-        }
-    }
-}
-
-fn print_the_last_three_guesses_in_backwards_order_really_nicely(v: &Vec<(u32, String)>) {
-    let mut count = 0;     
-    println!("\nResults: Printing Last Three\nAttempt | Guess");
-    for g in v.iter().rev() {
-        println!("      {} | {}", g.0, g.1);
-        count += 1;
-        if count == 3 { break; }
-    }
-}
-
-fn print_hashmap(hm: &HashMap<u32, String>) {
-    println!("\nResults: Printing HashMap\nAttempt | Guess");
-    for m in hm{
-        println!("      {:?} | {:?}", m.0, m.1);
-    }
-}
-
-fn print_hashmap_last_three(hm: &HashMap<u32, String>) {
-    println!("\nResults: Printing Last Three in Hashmap\nAttempt | Guess");  
-    let mut entries = 0;
-    for _m in hm.iter() {
-        entries += 1;
-    }
-    //let ln: u32 = hm.len(); //Give error because hm.len() is usize, not u32
-     
-    for i in (max(entries-2, 1)..entries+1).rev() { 
-        let mut item = hm.get(&i);
-        match item {
-            Some(num) => println!("      {} | {}", i, num),
-            None => println!("Nothing!"),
-        };
-    }
-}
 
 fn main() {
     println!("{}", "\n\nGuess the number or perish. :)".bold());
@@ -129,9 +88,14 @@ fn main() {
         println!("\nYou've guessed {} time(s) already!", attempts.to_string().yellow())
     }
 
-    print_guesses(&guesses);
-    print_the_last_three_guesses_in_backwards_order_really_nicely(&guesses); 
-    print_hashmap(&guess_hashmap);
-    print_hashmap_last_three(&guess_hashmap);
+    //print_guesses(&guesses);
+    //print_the_last_three_guesses_in_backwards_order_really_nicely(&guesses); 
+    //print_hashmap(&guess_hashmap);
+    //print_hashmap_last_three(&guess_hashmap);
+    guessing_game::results::print_guesses(&guesses);
+    guessing_game::results::print_the_last_three_guesses_in_backwards_order_really_nicely(&guesses); 
+    guessing_game::results::print_hashmap(&guess_hashmap);
+    guessing_game::results::print_hashmap_last_three(&guess_hashmap);
 }
 
+
diff --git a/a2_guessing_game/src/results.rs b/a2_guessing_game/src/results.rs
new file mode 100644
index 0000000..0cbf61b
--- /dev/null
+++ b/a2_guessing_game/src/results.rs
@@ -0,0 +1,48 @@
+
+use std::cmp::max;
+use std::collections::HashMap;
+
+pub fn print_guesses(v: &Vec<(u32, String)>) {
+    let iterations = 2;
+    for _i in 0..iterations { 
+        println!("\nResults: Printing All\nAttempt | Guess");
+        for g in v {
+            println!("      {} | {}", g.0, g.1);
+        }
+    }
+}
+
+pub fn print_the_last_three_guesses_in_backwards_order_really_nicely(v: &Vec<(u32, String)>) {
+    let mut count = 0;     
+    println!("\nResults: Printing Last Three\nAttempt | Guess");
+    for g in v.iter().rev() {
+        println!("      {} | {}", g.0, g.1);
+        count += 1;
+        if count == 3 { break; }
+    }
+}
+
+pub fn print_hashmap(hm: &HashMap<u32, String>) {
+    println!("\nResults: Printing HashMap\nAttempt | Guess");
+    for m in hm{
+        println!("      {:?} | {:?}", m.0, m.1);
+    }
+}
+
+pub fn print_hashmap_last_three(hm: &HashMap<u32, String>) {
+    println!("\nResults: Printing Last Three in Hashmap\nAttempt | Guess");  
+    let mut entries = 0;
+    for _m in hm.iter() {
+        entries += 1;
+    }
+    //let ln: u32 = hm.len(); //Give error because hm.len() is usize, not u32
+     
+    for i in (max(entries-2, 1)..entries+1).rev() { 
+        let mut item = hm.get(&i);
+        match item {
+            Some(num) => println!("      {} | {}", i, num),
+            None => println!("Nothing!"),
+        };
+    }
+}
+
-- 
GitLab