pub struct MerkleTreeWriter<W> { /* private fields */ }
Expand description
A MerkleTreeWriter
wraps a MerkleTreeBuilder
and another type that implements
std::io::Write
.
MerkleTreeWriter
s can be used to compute a MerkleTree
while streaming data from one
location to another. To simply compute a MerkleTree
without chaining writes to a separate
Writer, see MerkleTreeBuilder
.
§Examples
let data = vec![0xff; 8192];
let mut written = Vec::new();
{
let mut writer = MerkleTreeWriter::new(&mut written);
writer.write_all(&data)?;
assert_eq!(
writer.finish().root(),
"68d131bc271f9c192d4f6dcd8fe61bef90004856da19d0f2f514a7f4098b0737"
.parse()
.unwrap()
);
}
assert_eq!(written, data);
Implementations§
Source§impl<W: Write> MerkleTreeWriter<W>
impl<W: Write> MerkleTreeWriter<W>
Sourcepub fn finish(self) -> MerkleTree
pub fn finish(self) -> MerkleTree
Finalizes all levels of the merkle tree, converting this MerkleTreeWriter
instance into a
MerkleTree
.
Trait Implementations§
Source§impl<W: Write> Write for MerkleTreeWriter<W>
impl<W: Write> Write for MerkleTreeWriter<W>
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl<W> Freeze for MerkleTreeWriter<W>where
W: Freeze,
impl<W> RefUnwindSafe for MerkleTreeWriter<W>where
W: RefUnwindSafe,
impl<W> Send for MerkleTreeWriter<W>where
W: Send,
impl<W> Sync for MerkleTreeWriter<W>where
W: Sync,
impl<W> Unpin for MerkleTreeWriter<W>where
W: Unpin,
impl<W> UnwindSafe for MerkleTreeWriter<W>where
W: UnwindSafe,
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