From bb17bd7a9c2d2b65b3ae060efff8ba013ea70b46 Mon Sep 17 00:00:00 2001 From: Andreas Fackler Date: Tue, 23 Jul 2019 11:23:42 +0200 Subject: [PATCH] Add NetworkInfo::other_ids. --- examples/simulation.rs | 6 +----- src/network_info.rs | 7 +++++++ tests/dynamic_honey_badger.rs | 6 +----- tests/honey_badger.rs | 4 ++-- tests/queueing_honey_badger.rs | 4 ++-- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/examples/simulation.rs b/examples/simulation.rs index 909206c..70d2f75 100644 --- a/examples/simulation.rs +++ b/examples/simulation.rs @@ -434,11 +434,7 @@ fn main() { let new_honey_badger = |netinfo: NetworkInfo, rng: &mut OsRng| { let our_id = *netinfo.our_id(); - let peer_ids: Vec<_> = netinfo - .all_ids() - .filter(|&&them| them != our_id) - .cloned() - .collect(); + let peer_ids: Vec<_> = netinfo.other_ids().cloned().collect(); let dhb = DynamicHoneyBadger::builder().build(netinfo); let (qhb, qhb_step) = QueueingHoneyBadger::builder(dhb) .batch_size(args.flag_b) diff --git a/src/network_info.rs b/src/network_info.rs index 2c1a8fb..0e812e7 100644 --- a/src/network_info.rs +++ b/src/network_info.rs @@ -86,6 +86,13 @@ impl NetworkInfo { self.public_keys.keys() } + /// ID of all nodes in the network except this one. + #[inline] + pub fn other_ids(&self) -> impl Iterator + Clone { + let our_id = self.our_id.clone(); + self.public_keys.keys().filter(move |id| **id != our_id) + } + /// The total number _N_ of nodes. #[inline] pub fn num_nodes(&self) -> usize { diff --git a/tests/dynamic_honey_badger.rs b/tests/dynamic_honey_badger.rs index daa5d13..db79a38 100644 --- a/tests/dynamic_honey_badger.rs +++ b/tests/dynamic_honey_badger.rs @@ -109,11 +109,7 @@ fn do_drop_and_re_add(cfg: TestConfig) { id ); let dhb = DynamicHoneyBadger::builder().build(node.netinfo.clone()); - SenderQueue::builder( - dhb, - node.netinfo.all_ids().filter(|&&them| them != id).cloned(), - ) - .build(node.id) + SenderQueue::builder(dhb, node.netinfo.other_ids().cloned()).build(node.id) }) .build(&mut rng) .expect("could not construct test network"); diff --git a/tests/honey_badger.rs b/tests/honey_badger.rs index aedbb97..b390590 100644 --- a/tests/honey_badger.rs +++ b/tests/honey_badger.rs @@ -188,12 +188,12 @@ where fn new_honey_badger( netinfo: Arc>, ) -> (UsizeHoneyBadger, Step, NodeId>>) { - let our_id = *netinfo.our_id(); let nc = netinfo.clone(); - let peer_ids = nc.all_ids().filter(|&&them| them != our_id).cloned(); + let peer_ids = nc.other_ids().cloned(); let hb = HoneyBadger::builder(netinfo) .encryption_schedule(EncryptionSchedule::EveryNthEpoch(2)) .build(); + let our_id = *nc.our_id(); SenderQueue::builder(hb, peer_ids).build(our_id) } diff --git a/tests/queueing_honey_badger.rs b/tests/queueing_honey_badger.rs index 332a0dc..5cc5ef4 100644 --- a/tests/queueing_honey_badger.rs +++ b/tests/queueing_honey_badger.rs @@ -225,13 +225,13 @@ fn new_queueing_hb( seed: TestRngSeed, ) -> (QHB, Step>>) { let mut rng: TestRng = TestRng::from_seed(seed); - let our_id = *netinfo.our_id(); - let peer_ids = netinfo.all_ids().filter(|&&them| them != our_id).cloned(); + let peer_ids = netinfo.other_ids().cloned(); let dhb = DynamicHoneyBadger::builder().build((*netinfo).clone()); let (qhb, qhb_step) = QueueingHoneyBadger::builder(dhb) .batch_size(3) .build(&mut rng) .expect("failed to build QueueingHoneyBadger"); + let our_id = *netinfo.our_id(); let (sq, mut step) = SenderQueue::builder(qhb, peer_ids).build(our_id); let output = step.extend_with(qhb_step, |fault| fault, Message::from); assert!(output.is_empty());