From 8a521ba163f0d785f72565294d25f637fd95a811 Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Wed, 14 Feb 2018 16:18:06 -0700 Subject: [PATCH] Make space for user data --- src/tick.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/tick.rs b/src/tick.rs index 33127f628..eee072231 100644 --- a/src/tick.rs +++ b/src/tick.rs @@ -3,6 +3,7 @@ pub struct Tick { pub hash: u64, pub n: u64, + pub data: Option, } impl Tick { @@ -15,14 +16,14 @@ impl Tick { pub fn new(seed: u64, n: u64) -> Self { use std::collections::hash_map::DefaultHasher; use std::hash::{Hash, Hasher}; - + let data = None; let mut hash = seed; let mut hasher = DefaultHasher::new(); for _ in 0..n { hash.hash(&mut hasher); hash = hasher.finish(); } - Tick { hash, n } + Tick { hash, n, data } } /// Verifies self.hash is the result of hashing a 'seed' 'self.n' times. /// @@ -50,14 +51,14 @@ impl Tick { /// ``` pub fn verify_slice(ticks: &[Tick], seed: u64) -> bool { use rayon::prelude::*; - let genesis = [Tick { hash: seed, n: 0 }]; + let genesis = [Tick::new(seed, 0)]; let tick_pairs = genesis.par_iter().chain(ticks).zip(ticks); tick_pairs.all(|(x, x1)| x1.verify(x.hash)) } /// Verifies the hashes and ticks serially. Exists only for reference. pub fn verify_slice_seq(ticks: &[Tick], seed: u64) -> bool { - let genesis = [Tick { hash: seed, n: 0 }]; + let genesis = [Tick::new(seed, 0)]; let tick_pairs = genesis.iter().chain(ticks).zip(ticks); tick_pairs.into_iter().all(|(x, x1)| x1.verify(x.hash)) }