From d3a18537d8dcc62df523a0e800139718c050c853 Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Tue, 1 May 2018 12:25:37 +0300 Subject: [PATCH] Use `equals` instead of manual comparison of last headers --- src/daemon.rs | 5 +++-- src/index.rs | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/daemon.rs b/src/daemon.rs index d0e85e6..8d969c6 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -17,6 +17,7 @@ pub struct Daemon { url: String, } +#[derive(Eq, PartialEq)] pub struct HeaderEntry { height: usize, hash: Sha256dHash, @@ -42,8 +43,8 @@ pub struct HeaderList { } impl HeaderList { - pub fn best_header(&self) -> &BlockHeader { - &self.headers.last().unwrap().header + pub fn equals(&self, other: &HeaderList) -> bool { + self.headers.last() == other.headers.last() } pub fn headers(&self) -> &[HeaderEntry] { diff --git a/src/index.rs b/src/index.rs index ef4c1c9..707e965 100644 --- a/src/index.rs +++ b/src/index.rs @@ -282,14 +282,15 @@ impl Index { current_headers: &'a HeaderList, ) -> Vec<&'a HeaderEntry> { if let Some(ref indexed_headers) = self.headers { - if current_headers.best_header() == indexed_headers.best_header() { + if current_headers.equals(indexed_headers) { return Vec::new(); // everything was indexed already. } } let indexed_headers: HeaderMap = read_indexed_headers(&store); { - let best_block_header: &BlockHeader = current_headers.best_header(); + let best_block_header: &BlockHeader = + current_headers.headers().last().unwrap().header(); info!( "got {} headers (indexed {}), best {} @ {}", current_headers.headers().len(),