Browse Source

Use `equals` instead of manual comparison of last headers

refactor-mempool
Roman Zeyde 7 years ago
parent
commit
d3a18537d8
No known key found for this signature in database GPG Key ID: 87CAE5FA46917CBB
  1. 5
      src/daemon.rs
  2. 5
      src/index.rs

5
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] {

5
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(),

Loading…
Cancel
Save