push_decoder

Struct BlockDecoder

Source
pub struct BlockDecoder { /* private fields */ }
Expand description

Push decoder for bitcoin blocks.

IMPORTANT: you must call finish() after the last byte of the block has been supplied, in order to complete the block validation and ensure that there is no trailing data.

The decoder uses a limited amount of memory by streaming parse results to a listener.

Scripts beyond max_script_size are replaced with the empty script (saves 10 KB of peak memory usage).

The computed transactionm IDs cover the original script.

Implementations§

Source§

impl BlockDecoder

Source

pub fn new() -> Self

Create a new decoder with a max script size of 100 bytes

Source

pub fn new_with_capacity(buffer_capacity: usize, max_script_size: usize) -> Self

Create a new decoder with a specific buffer capacity. must be at least 100 bytes.

Source

pub fn decode_next<L: Listener>( &mut self, data: &[u8], listener: &mut L, ) -> Result<(), Error>

Supply data to the decoder

Source

pub fn finish(self) -> Result<(), Error>

Signal that no more data will be supplied, validate that the block is complete.

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> 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, 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.