From 5698d48dc87827d7ac6924cb9993a976e4a1ff2a Mon Sep 17 00:00:00 2001 From: Trent Nelson Date: Thu, 11 Jul 2019 16:15:08 -0600 Subject: [PATCH] merkle-tree: Make instantiation a little less painful (#5037) automerge --- core/src/entry.rs | 2 +- merkle-tree/src/merkle_tree.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/entry.rs b/core/src/entry.rs index 91cb582327..2ab139bb81 100644 --- a/core/src/entry.rs +++ b/core/src/entry.rs @@ -175,7 +175,7 @@ pub fn hash_transactions(transactions: &[Transaction]) -> Hash { // a hash of a slice of transactions only needs to hash the signatures let signatures: Vec<_> = transactions .iter() - .flat_map(|tx| tx.signatures.iter().map(|sig| sig.as_ref())) + .flat_map(|tx| tx.signatures.iter()) .collect(); let merkle_tree = MerkleTree::new(&signatures); if let Some(root_hash) = merkle_tree.get_root() { diff --git a/merkle-tree/src/merkle_tree.rs b/merkle-tree/src/merkle_tree.rs index d866a35f1e..982a215236 100644 --- a/merkle-tree/src/merkle_tree.rs +++ b/merkle-tree/src/merkle_tree.rs @@ -84,7 +84,7 @@ impl MerkleTree { capacity } - pub fn new(items: &[&[u8]]) -> Self { + pub fn new>(items: &[T]) -> Self { let cap = MerkleTree::calculate_vec_capacity(items.len()); let mut mt = MerkleTree { leaf_count: items.len(), @@ -92,6 +92,7 @@ impl MerkleTree { }; for item in items { + let item = item.as_ref(); let hash = hash_leaf!(item); mt.nodes.push(hash); } @@ -178,7 +179,7 @@ mod tests { #[test] fn test_tree_from_empty() { - let mt = MerkleTree::new(&[]); + let mt = MerkleTree::new::<[u8; 0]>(&[]); assert_eq!(mt.get_root(), None); }