From 3c6fda8e0be63bd7b63adcd78007706d95fe69f9 Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Fri, 7 Feb 2020 09:21:23 -0800 Subject: [PATCH] Make the BlockHeaderHash conversions work on borrows. --- zebra-chain/src/block.rs | 10 ++++++++-- zebra-chain/src/block/tests.rs | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/zebra-chain/src/block.rs b/zebra-chain/src/block.rs index 906a69d2..dfe7bba7 100644 --- a/zebra-chain/src/block.rs +++ b/zebra-chain/src/block.rs @@ -43,8 +43,8 @@ impl fmt::Debug for BlockHeaderHash { } } -impl From for BlockHeaderHash { - fn from(block_header: BlockHeader) -> Self { +impl<'a> From<&'a BlockHeader> for BlockHeaderHash { + fn from(block_header: &'a BlockHeader) -> Self { let mut hash_writer = Sha256dWriter::default(); block_header .zcash_serialize(&mut hash_writer) @@ -169,6 +169,12 @@ pub struct Block { pub transactions: Vec, } +impl<'a> From<&'a Block> for BlockHeaderHash { + fn from(block: &'a Block) -> BlockHeaderHash { + (&block.header).into() + } +} + impl ZcashSerialize for Block { fn zcash_serialize(&self, mut writer: W) -> Result<(), io::Error> { self.header.zcash_serialize(&mut writer)?; diff --git a/zebra-chain/src/block/tests.rs b/zebra-chain/src/block/tests.rs index d6efbe27..24476f2e 100644 --- a/zebra-chain/src/block/tests.rs +++ b/zebra-chain/src/block/tests.rs @@ -77,7 +77,7 @@ fn blockheaderhash_from_blockheader() { solution: EquihashSolution([0; 1344]), }; - let hash = BlockHeaderHash::from(blockheader); + let hash = BlockHeaderHash::from(&blockheader); assert_eq!( format!("{:?}", hash),