pub struct Sha256 {}
Expand description
Sha256 implementation of the Hasher
trait.
§Examples
let tree = MerkleTree::<Sha256>::new();
let other_tree: MerkleTree<Sha256> = MerkleTree::new();
let proof_bytes: Vec<u8> = vec![
46, 125, 44, 3, 169, 80, 122, 226, 101, 236, 245, 181, 53, 104, 133, 165, 51, 147, 162,
2, 157, 36, 19, 148, 153, 114, 101, 161, 162, 90, 239, 198, 37, 47, 16, 200, 54, 16,
235, 202, 26, 5, 156, 11, 174, 130, 85, 235, 162, 249, 91, 228, 209, 215, 188, 250,
137, 215, 36, 138, 130, 217, 241, 17, 229, 160, 31, 238, 20, 224, 237, 92, 72, 113, 79,
34, 24, 15, 37, 173, 131, 101, 181, 63, 151, 121, 247, 157, 196, 163, 215, 233, 57, 99,
249, 74,
];
let proof_result = MerkleProof::<Sha256>::from_bytes(&proof_bytes);
Trait Implementations§
source§impl Clone for Sha256Algorithm
impl Clone for Sha256Algorithm
source§fn clone(&self) -> Sha256Algorithm
fn clone(&self) -> Sha256Algorithm
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Hasher for Sha256Algorithm
impl Hasher for Sha256Algorithm
source§type Hash = [u8; 32]
type Hash = [u8; 32]
This type is used as a hash type in the library.
It is recommended to use fixed size u8 array as a hash type. For example,
for sha256 the type would be
[u8; 32]
, representing 32 bytes,
which is the size of the sha256 digest. Also, fixed sized arrays of u8
by default satisfy all trait bounds required by this type. Read moresource§fn hash(data: &[u8]) -> [u8; 32]
fn hash(data: &[u8]) -> [u8; 32]
This associated function takes a slice of bytes and returns a hash of it.
Used by
concat_and_hash
function to build a tree from concatenated hashessource§fn concat_and_hash(left: &Self::Hash, right: Option<&Self::Hash>) -> Self::Hash
fn concat_and_hash(left: &Self::Hash, right: Option<&Self::Hash>) -> Self::Hash
Used by
MerkleTree
and PartialTree
when calculating the root.
The provided default implementation propagates the left node if it doesn’t
have a sibling. The left node should always be present. The right node is optional. Read moreAuto Trait Implementations§
impl Freeze for Sha256Algorithm
impl RefUnwindSafe for Sha256Algorithm
impl Send for Sha256Algorithm
impl Sync for Sha256Algorithm
impl Unpin for Sha256Algorithm
impl UnwindSafe for Sha256Algorithm
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)