pub struct VerityGenerator { /* private fields */ }Expand description
Merkle tree generator for data integrity verification.
Implementations§
Source§impl VerityGenerator
impl VerityGenerator
Sourcepub fn new(file: File, offset: u64, data_pages: u32) -> Result<Self>
pub fn new(file: File, offset: u64, data_pages: u32) -> Result<Self>
Create a new instance VerityGenerator.
Sourcepub fn initialize(&mut self) -> Result<()>
pub fn initialize(&mut self) -> Result<()>
Initialize all digest values.
Sourcepub fn set_digest(
&mut self,
level: u32,
index: u32,
digest: &[u8],
) -> Result<()>
pub fn set_digest( &mut self, level: u32, index: u32, digest: &[u8], ) -> Result<()>
Set digest value for Merkle entry at level with index.
Digests for data pages must be set by calling this method. It can also be used to set digest values for intermediate digest pages.
Sourcepub fn generate_level_digests(&mut self, level: u32) -> Result<()>
pub fn generate_level_digests(&mut self, level: u32) -> Result<()>
Generate digest values from lower level digest pages.
Sourcepub fn generate_root_digest(&mut self) -> Result<RafsDigest>
pub fn generate_root_digest(&mut self) -> Result<RafsDigest>
Generate Merkle root digest.
The returned Merkle tree root digest will be:
NON_EXIST_ENTRY_DIGESTif there’s no data page- digest of the data page if there’s only one data page
- digest of the intermediate digest page if there’s more than one data pages
Sourcepub fn generate_all_digests(&mut self) -> Result<RafsDigest>
pub fn generate_all_digests(&mut self) -> Result<RafsDigest>
Generate all intermediate and root digests for the Merkle tree.
Digests for data pages at level 1 must be set up by calling [set_digest()] before this function to generate intermediate and root digests.
Auto Trait Implementations§
impl !Freeze for VerityGenerator
impl RefUnwindSafe for VerityGenerator
impl Send for VerityGenerator
impl Sync for VerityGenerator
impl Unpin for VerityGenerator
impl UnwindSafe for VerityGenerator
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