rs_merkle::algorithms

Struct 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§

source§

impl Clone for Sha256Algorithm

source§

fn clone(&self) -> Sha256Algorithm

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Hasher for Sha256Algorithm

source§

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
source§

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
source§

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
source§

fn hash_size() -> usize

Returns the byte size of Self::Hash. Default implementation returns mem::size_of::<Self::Hash>(). Usually doesn’t need to be overridden. Used internally by MerkleProof to parse hashes from a serialized proof.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.