From 70d2a0ee6b93d31309d5121eb72afdb4b85057f9 Mon Sep 17 00:00:00 2001 From: rajarshimaitra Date: Thu, 8 Jul 2021 22:58:22 +0530 Subject: [PATCH] Return Option when getting addresses When getting addresses return Option with Some vectors, or None in case of empty vectors. This makes handling the case of getting empty result easier. --- .../compact_filters/address_manager.rs | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/blockchain/compact_filters/address_manager.rs b/src/blockchain/compact_filters/address_manager.rs index 9d127ada..16ae468c 100644 --- a/src/blockchain/compact_filters/address_manager.rs +++ b/src/blockchain/compact_filters/address_manager.rs @@ -571,18 +571,48 @@ impl AddressManager

{ } /// Get all the known CBF addresses - pub fn get_known_cbfs(&self) -> Vec { - self.directory.cbf_nodes.iter().copied().collect() + pub fn get_known_cbfs(&self) -> Option> { + let addresses = self + .directory + .cbf_nodes + .iter() + .copied() + .collect::>(); + + match addresses.len() { + 0 => None, + _ => Some(addresses), + } } /// Get all the known regular addresses - pub fn get_known_non_cbfs(&self) -> Vec { - self.directory.non_cbf_nodes.iter().copied().collect() + pub fn get_known_non_cbfs(&self) -> Option> { + let addresses = self + .directory + .non_cbf_nodes + .iter() + .copied() + .collect::>(); + + match addresses.len() { + 0 => None, + _ => Some(addresses), + } } /// Get previously tried addresses - pub fn get_previously_tried(&self) -> Vec { - self.directory.previously_sent.iter().copied().collect() + pub fn get_previously_tried(&self) -> Option> { + let addresses = self + .directory + .previously_sent + .iter() + .copied() + .collect::>(); + + match addresses.len() { + 0 => None, + _ => Some(addresses), + } } }