Rename CachedTreeHash trait, add readme

This commit is contained in:
Paul Hauner
2019-04-24 18:23:58 +10:00
parent 7563755b15
commit cab5e59a6f
10 changed files with 105 additions and 37 deletions

View File

@@ -37,10 +37,10 @@ fn should_skip_hashing(field: &syn::Field) -> bool {
.any(|attr| attr.into_token_stream().to_string() == "# [ tree_hash ( skip_hashing ) ]")
}
/// Implements `tree_hash::CachedTreeHashSubTree` for some `struct`.
/// Implements `tree_hash::CachedTreeHash` for some `struct`.
///
/// Fields are hashed in the order they are defined.
#[proc_macro_derive(CachedTreeHashSubTree, attributes(tree_hash))]
#[proc_macro_derive(CachedTreeHash, attributes(tree_hash))]
pub fn subtree_derive(input: TokenStream) -> TokenStream {
let item = parse_macro_input!(input as DeriveInput);
@@ -58,7 +58,7 @@ pub fn subtree_derive(input: TokenStream) -> TokenStream {
let num_items = idents_a.len();
let output = quote! {
impl tree_hash::CachedTreeHashSubTree<#name> for #name {
impl tree_hash::CachedTreeHash<#name> for #name {
fn new_tree_hash_cache(&self, depth: usize) -> Result<tree_hash::TreeHashCache, tree_hash::Error> {
let tree = tree_hash::TreeHashCache::from_leaves_and_subtrees(
self,

View File

@@ -1,7 +1,7 @@
use tree_hash::{CachedTreeHashSubTree, SignedRoot, TreeHash};
use tree_hash_derive::{CachedTreeHashSubTree, SignedRoot, TreeHash};
use tree_hash::{CachedTreeHash, SignedRoot, TreeHash};
use tree_hash_derive::{CachedTreeHash, SignedRoot, TreeHash};
#[derive(Clone, Debug, TreeHash, CachedTreeHashSubTree)]
#[derive(Clone, Debug, TreeHash, CachedTreeHash)]
pub struct Inner {
pub a: u64,
pub b: u64,
@@ -11,7 +11,7 @@ pub struct Inner {
fn test_standard_and_cached<T>(original: &T, modified: &T)
where
T: CachedTreeHashSubTree<T>,
T: CachedTreeHash<T>,
{
let mut cache = original.new_tree_hash_cache().unwrap();
@@ -44,7 +44,7 @@ fn inner_standard_vs_cached() {
test_standard_and_cached(&original, &modified);
}
#[derive(Clone, Debug, TreeHash, CachedTreeHashSubTree)]
#[derive(Clone, Debug, TreeHash, CachedTreeHash)]
pub struct Uneven {
pub a: u64,
pub b: u64,