Skip to main content

RlpList

Struct RlpList 

Source
pub struct RlpList<'a> { /* private fields */ }
Expand description

Borrowed RLP list payload.

Fields are private so downstream crates cannot construct unvalidated decoded values and feed them into trusted re-encoding paths.

Implementations§

Source§

impl<'a> RlpList<'a>

Source

pub const fn payload(self) -> &'a [u8]

Returns the concatenated encoded child items.

Source

pub const fn encoded_len(self) -> usize

Returns the total encoded list length in bytes.

Source

pub const fn header_len(self) -> usize

Returns the RLP header length in bytes.

Source

pub const fn item_count(self) -> usize

Returns the number of immediate child items.

Source

pub const fn form(self) -> RlpListForm

Returns the canonical list form that was decoded.

Source

pub const fn is_empty(self) -> bool

Returns true when the list has no child items.

Source

pub const fn items(self) -> RlpListItems<'a>

Returns an iterator over the immediate child items in this list.

Nested child list item counts are computed lazily when those child lists are yielded. Recursive callers that walk every nested list can therefore perform additional bounded traversal work proportional to the walked nesting depth. Use Self::items_with_depth_limit when processing externally reachable input with a caller-specific recursion budget.

Source

pub const fn items_with_depth_limit(self, depth: usize) -> RlpListItems<'a>

Returns an iterator that rejects nested lists after depth child-list transitions below this list.

A depth of 0 still permits scalar children but yields DecodeError::NestingTooDeep for a child list. This gives recursive callers an explicit iteration-phase budget independent from decode-time validation.

Trait Implementations§

Source§

impl<'a> Clone for RlpList<'a>

Source§

fn clone(&self) -> RlpList<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for RlpList<'a>

Source§

impl<'a> Debug for RlpList<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for RlpList<'_>

Source§

impl PartialEq for RlpList<'_>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<'a> Freeze for RlpList<'a>

§

impl<'a> RefUnwindSafe for RlpList<'a>

§

impl<'a> Send for RlpList<'a>

§

impl<'a> Sync for RlpList<'a>

§

impl<'a> Unpin for RlpList<'a>

§

impl<'a> UnsafeUnpin for RlpList<'a>

§

impl<'a> UnwindSafe for RlpList<'a>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.