]> git.scottworley.com Git - voter/commitdiff
Missing votes file is not an error
authorScott Worley <scottworley@scottworley.com>
Sun, 20 Nov 2022 09:32:42 +0000 (01:32 -0800)
committerScott Worley <scottworley@scottworley.com>
Sun, 20 Nov 2022 09:32:42 +0000 (01:32 -0800)
src/main.rs

index d15194fbb74d055370dc600ecd4604bc01798a57..303393c150dab17af457194ab9501d6865821d98 100644 (file)
@@ -47,21 +47,22 @@ fn get_voter(request: &cgi::Request) -> Result<&[u8], cgi::Response> {
 
 fn tally_votes(dir: PathBuf) -> std::io::Result<HashMap<String, HashSet<String>>> {
     let mut tally: HashMap<String, HashSet<String>> = HashMap::new();
 
 fn tally_votes(dir: PathBuf) -> std::io::Result<HashMap<String, HashSet<String>>> {
     let mut tally: HashMap<String, HashSet<String>> = HashMap::new();
-    let vfile = std::fs::File::open(dir.join("votes"))?;
-    for liner in std::io::BufReader::new(vfile).lines() {
-        let line = liner?;
-        if let Some((voter, datum)) = line.split_once(' ') {
-            if voter.len() == COOKIE_LENGTH {
-                if let Some((vote, candidate)) = datum.split_once(' ') {
-                    if vote == "0" {
-                        if let Some(entry) = tally.get_mut(candidate) {
-                            entry.remove(voter);
+    if let Ok(vfile) = std::fs::File::open(dir.join("votes")) {
+        for liner in std::io::BufReader::new(vfile).lines() {
+            let line = liner?;
+            if let Some((voter, datum)) = line.split_once(' ') {
+                if voter.len() == COOKIE_LENGTH {
+                    if let Some((vote, candidate)) = datum.split_once(' ') {
+                        if vote == "0" {
+                            if let Some(entry) = tally.get_mut(candidate) {
+                                entry.remove(voter);
+                            }
+                        } else if vote == "1" {
+                            tally
+                                .entry(candidate.to_owned())
+                                .or_default()
+                                .insert(voter.to_owned());
                         }
                         }
-                    } else if vote == "1" {
-                        tally
-                            .entry(candidate.to_owned())
-                            .or_default()
-                            .insert(voter.to_owned());
                     }
                 }
             }
                     }
                 }
             }