Crate sha2 contains the type Sha256 which implements the trait Digest defined in the crate digest. This trait is also reexported from sha2.
I want to write a file which doesn't mention sha2, just digest:
merkle_tree.rs:
use digest::Digest;
#[derive(Default)]
pub struct MerkleTree<T: Digest> {
digest: T,
}
impl<T: Digest+Default> MerkleTree<T> {
pub fn new() -> MerkleTree<T> {
MerkleTree{ ..Default::default() }
}
}
main.rs:
extern crate digest;
extern crate sha2;
mod merkle_tree;
use sha2::{Digest, Sha256};
use merkle_tree::MerkleTree;
fn main() {
let mut mt = MerkleTree::<Sha256>::new();
println!("Hello, world!");
}
I have the following output:
error: no associated item named
newfound for typemerkle_tree::MerkleTree<sha2::Sha256>in the current scope the traitdigest::Digestis not implemented forsha2::Sha256
Cargo.toml:
[package]
name = "merkle_tree"
version = "0.1.0"
authors = ["Simon Prykhodko <[email protected]>"]
[dependencies]
digest = "0.4.0"
sha2 = "0.3.0"
What's wrong here?
sha2 = "0.3.0"? The latest version is "0.4.2". - kennytm