pub struct MerkleTree { /* private fields */ }Expand description
A merkle tree for BitTorrent v2 piece verification.
In BEP-52, each file has a merkle tree built from 16 KiB block hashes.
The root of this tree is the file’s pieces_root.
Implementations§
Source§impl MerkleTree
impl MerkleTree
pub fn new() -> Self
pub fn from_piece_hashes(hashes: Vec<[u8; 32]>) -> Self
pub fn add_leaf(&mut self, hash: [u8; 32])
pub fn build(&mut self)
pub fn root(&self) -> Option<[u8; 32]>
pub fn proof(&self, leaf_index: usize) -> Option<Vec<[u8; 32]>>
pub fn verify( root: &[u8; 32], leaf: &[u8; 32], index: usize, proof: &[[u8; 32]], ) -> bool
pub fn leaf_count(&self) -> usize
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MerkleTree
impl RefUnwindSafe for MerkleTree
impl Send for MerkleTree
impl Sync for MerkleTree
impl Unpin for MerkleTree
impl UnwindSafe for MerkleTree
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