From 101db55d04ac109b873212dfd7efdc4a232de2d9 Mon Sep 17 00:00:00 2001 From: Jay Robson Date: Tue, 6 May 2025 19:49:50 +1000 Subject: [PATCH] clean up warnings --- src/ballot.rs | 26 ++------------------------ src/counter.rs | 5 ++--- src/header.rs | 8 +++----- src/main.rs | 2 +- 4 files changed, 8 insertions(+), 33 deletions(-) diff --git a/src/ballot.rs b/src/ballot.rs index 30d897e..e069aca 100644 --- a/src/ballot.rs +++ b/src/ballot.rs @@ -1,5 +1,3 @@ -use std::rc::Rc; - use itertools::Itertools; use crate::header::Header; @@ -12,20 +10,13 @@ enum BallotType { #[derive(Debug)] pub struct Ballot { - header: Rc
, - collection_point_id: usize, - batch_id: usize, - paper_id: usize, votes: Vec, weight: f64, } impl Ballot { - pub fn parse(row: quick_csv::Row, header: Rc
) -> Result> { - let mut cols = row.columns()?; - - let (_, _, _, collection_point_id, batch_id, paper_id) = cols.next_tuple().ok_or("Missing columns")?; - let cols = cols.collect_vec(); + pub fn parse(row: quick_csv::Row, header: &Header) -> Result> { + let cols = row.columns()?.skip(6).collect_vec(); let mut votes: Vec>; let ty: BallotType; @@ -58,10 +49,6 @@ impl Ballot { }; Ok(Ballot { - header, - collection_point_id: collection_point_id.parse()?, - batch_id: batch_id.parse()?, - paper_id: paper_id.parse()?, weight: 1.0, votes, }) @@ -82,14 +69,5 @@ impl Ballot { } return None; } - pub fn count_all_with_decaying_weights(&self, scores: &mut [f64], enabled: &[bool]) { - let mut m = 0.5; - for &id in self.votes.iter() { - if enabled[id] { - scores[id] += m; - m *= 0.5; - } - } - } } diff --git a/src/counter.rs b/src/counter.rs index d88bb52..7fbf7a4 100644 --- a/src/counter.rs +++ b/src/counter.rs @@ -1,6 +1,5 @@ use std::rc::Rc; use itertools::Itertools; - use crate::{ballot::Ballot, header::Header, score_item::{ScoreItem, ScoreItems}}; #[derive(Debug)] @@ -20,7 +19,7 @@ pub struct Counter { impl Counter { pub fn new(mut csv: quick_csv::Csv, winners: usize) -> Result> { - let header = Header::parse(csv.next().ok_or("csv header missing")??, winners)?; + let header = Rc::new(Header::parse(csv.next().ok_or("csv header missing")??, winners)?); let mut ballots = Vec::new(); if winners > header.candidates.len() { @@ -28,7 +27,7 @@ impl Counter { } for row in csv { - ballots.push(Ballot::parse(row?, header.clone())?); + ballots.push(Ballot::parse(row?, &header)?); } let enabled = vec![true; header.candidates.len()]; diff --git a/src/header.rs b/src/header.rs index 7d7df40..0719846 100644 --- a/src/header.rs +++ b/src/header.rs @@ -1,7 +1,5 @@ -use std::{collections::HashMap, rc::Rc}; - +use std::collections::HashMap; use itertools::Itertools; - use crate::{candidate::{Candidate, CandidateName}, party::Party}; @@ -13,7 +11,7 @@ pub struct Header { } impl Header { - pub fn parse(row: quick_csv::Row, winners: usize) -> Result, Box> { + pub fn parse(row: quick_csv::Row, winners: usize) -> Result> { let mut header = Header { parties: Vec::new(), candidates: Vec::new(), @@ -43,7 +41,7 @@ impl Header { } } - Ok(header.into()) + Ok(header) } pub fn get_candidate_name(&self, index: usize) -> CandidateName { self.candidates[index].get_name(self) diff --git a/src/main.rs b/src/main.rs index 4011dcb..db257c9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -45,7 +45,7 @@ fn main() { winners.extend_from_slice(&v); } counter::Event::Lose(v) => { - eprintln!(" {index}: Lose: {}. {}, {}", header.get_candidate_name(v.index), v.value, Percent(v.value, total)); + eprintln!(" {index}: Lose: {}, {}, {}", header.get_candidate_name(v.index), v.value, Percent(v.value, total)); } } }