pub struct CountedBufReader<B: Buf> { /* private fields */ }
Expand description
Simple structure that implements the Read trait for a buffer and counts the number of bytes read from the beginning. Useful for the partial blob reading optimization: we know for each blob how many bytes have been read from the beginning.
Because of soundness issues we cannot implement the Buf trait because the prover could get unproved blob data using the chunk method.
Implementations§
Source§impl<B: Buf> CountedBufReader<B>
impl<B: Buf> CountedBufReader<B>
Sourcepub fn new(inner: B) -> Self
pub fn new(inner: B) -> Self
Creates a new buffer reader with counter from an objet that implements the buffer trait
Sourcepub fn advance(&mut self, num_bytes: usize)
pub fn advance(&mut self, num_bytes: usize)
Advance the accumulator by num_bytes
bytes. If num_bytes
is greater than the length
of remaining unverified data, then all remaining unverified data is added to the accumulator.
Sourcepub fn accumulator(&self) -> &[u8] ⓘ
pub fn accumulator(&self) -> &[u8] ⓘ
Getter: returns a reference to an accumulator of the blob data read by the rollup
Trait Implementations§
Source§impl<B> BorshDeserialize for CountedBufReader<B>
impl<B> BorshDeserialize for CountedBufReader<B>
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl<B> BorshSerialize for CountedBufReader<B>
impl<B> BorshSerialize for CountedBufReader<B>
Source§impl<B: Clone + Buf> Clone for CountedBufReader<B>
impl<B: Clone + Buf> Clone for CountedBufReader<B>
Source§fn clone(&self) -> CountedBufReader<B>
fn clone(&self) -> CountedBufReader<B>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'de, B> Deserialize<'de> for CountedBufReader<B>where
B: Deserialize<'de> + Buf,
impl<'de, B> Deserialize<'de> for CountedBufReader<B>where
B: Deserialize<'de> + Buf,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<B> Serialize for CountedBufReader<B>
impl<B> Serialize for CountedBufReader<B>
impl<B: Buf> StructuralPartialEq for CountedBufReader<B>
Auto Trait Implementations§
impl<B> Freeze for CountedBufReader<B>where
B: Freeze,
impl<B> RefUnwindSafe for CountedBufReader<B>where
B: RefUnwindSafe,
impl<B> Send for CountedBufReader<B>where
B: Send,
impl<B> Sync for CountedBufReader<B>where
B: Sync,
impl<B> Unpin for CountedBufReader<B>where
B: Unpin,
impl<B> UnwindSafe for CountedBufReader<B>where
B: 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