Struct OrderedTrieRootEncodedBuilder
pub struct OrderedTrieRootEncodedBuilder { /* private fields */ }Expand description
A builder for computing ordered trie roots from an append-only stream of pre-encoded items.
This type does not require the total item count up front. It relies on a strict input contract instead: every pushed item must be the next contiguous item in the final list.
This builder is intended for transaction and receipt root computation while a block is still
being built. It buffers only index 0, then streams all other leaves directly into the
HashBuilder in the same order as alloy_trie::root::ordered_trie_root_encoded.
Implementations§
§impl OrderedTrieRootEncodedBuilder
impl OrderedTrieRootEncodedBuilder
pub fn new() -> OrderedTrieRootEncodedBuilder
pub fn new() -> OrderedTrieRootEncodedBuilder
Creates an empty builder.
pub fn push_next(&mut self, bytes: &[u8])
pub fn push_next(&mut self, bytes: &[u8])
Pushes the next pre-encoded item.
Items must be pushed in their final contiguous order.
pub const fn pushed_count(&self) -> usize
pub const fn pushed_count(&self) -> usize
Returns the number of items pushed so far.
pub fn finalize(self) -> FixedBytes<32>
pub fn finalize(self) -> FixedBytes<32>
Finalizes the builder and returns the trie root.
This method is the end-of-stream signal. If fewer than 129 items were pushed, index 0 is
inserted here because it is the final leaf in RLP key order for that short list.
Trait Implementations§
§impl Debug for OrderedTrieRootEncodedBuilder
impl Debug for OrderedTrieRootEncodedBuilder
§impl Default for OrderedTrieRootEncodedBuilder
impl Default for OrderedTrieRootEncodedBuilder
§fn default() -> OrderedTrieRootEncodedBuilder
fn default() -> OrderedTrieRootEncodedBuilder
Auto Trait Implementations§
impl Freeze for OrderedTrieRootEncodedBuilder
impl RefUnwindSafe for OrderedTrieRootEncodedBuilder
impl Send for OrderedTrieRootEncodedBuilder
impl Sync for OrderedTrieRootEncodedBuilder
impl Unpin for OrderedTrieRootEncodedBuilder
impl UnsafeUnpin for OrderedTrieRootEncodedBuilder
impl UnwindSafe for OrderedTrieRootEncodedBuilder
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 552 bytes