Struct rs_merkle::algorithms::Sha256
source · [−]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
sourceimpl Clone for Sha256Algorithm
impl Clone for Sha256Algorithm
sourcefn clone(&self) -> Sha256Algorithm
fn clone(&self) -> Sha256Algorithm
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Hasher for Sha256Algorithm
impl Hasher for Sha256Algorithm
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 more
sourcefn 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 hashes Read more
sourcefn 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 more
Auto Trait Implementations
impl RefUnwindSafe for Sha256Algorithm
impl Send for Sha256Algorithm
impl Sync for Sha256Algorithm
impl Unpin for Sha256Algorithm
impl UnwindSafe for Sha256Algorithm
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more