pub struct PackedStoredNibbles(pub Nibbles);Expand description
Packed representation of nibbles for the AccountsTrie (storage v2).
Stores 2 nibbles per byte via Nibbles::pack, right-padded to 32 bytes + 1 nibble-count
byte = 33 bytes fixed. This halves the key size compared to StoredNibbles while
preserving sort order under memcmp.
Tuple Fields§
§0: NibblesImplementations§
Source§impl PackedStoredNibbles
impl PackedStoredNibbles
Sourcepub fn to_compact_array(&self) -> [u8; 33]
pub fn to_compact_array(&self) -> [u8; 33]
Encodes the nibbles into a fixed-size [u8; 33] array.
The first 32 bytes contain the packed nibbles (2 per byte, right-padded with zeros), and the 33rd byte stores the actual nibble count.
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for PackedStoredNibbles
Available on crate feature test-utils only.
impl<'arbitrary> Arbitrary<'arbitrary> for PackedStoredNibbles
Available on crate feature
test-utils only.Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self from the entirety of the given
unstructured data. Read moreSource§impl Clone for PackedStoredNibbles
impl Clone for PackedStoredNibbles
Source§impl Compact for PackedStoredNibbles
Available on crate features reth-codec only.
impl Compact for PackedStoredNibbles
Available on crate features
reth-codec only.Source§fn to_compact<B>(&self, buf: &mut B) -> usize
fn to_compact<B>(&self, buf: &mut B) -> usize
Takes a buffer which can be written to. Ideally, it returns the length written to.
Source§fn from_compact(buf: &[u8], _len: usize) -> (Self, &[u8])
fn from_compact(buf: &[u8], _len: usize) -> (Self, &[u8])
Takes a buffer which can be read from. Returns the object and
buf with its internal cursor
advanced (eg..advance(len)). Read more§fn specialized_to_compact<B>(&self, buf: &mut B) -> usize
fn specialized_to_compact<B>(&self, buf: &mut B) -> usize
“Optional”: If there’s no good reason to use it, don’t.
§fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
“Optional”: If there’s no good reason to use it, don’t.
Source§impl Compress for PackedStoredNibbles
impl Compress for PackedStoredNibbles
Source§type Compressed = Vec<u8>
type Compressed = Vec<u8>
Compressed type.
Source§fn compress_to_buf<B: BufMut + AsMut<[u8]>>(&self, buf: &mut B)
fn compress_to_buf<B: BufMut + AsMut<[u8]>>(&self, buf: &mut B)
Compresses data to a given buffer.
§fn uncompressable_ref(&self) -> Option<&[u8]>
fn uncompressable_ref(&self) -> Option<&[u8]>
If the type cannot be compressed, return its inner reference as
Some(self.as_ref())Source§impl Debug for PackedStoredNibbles
impl Debug for PackedStoredNibbles
Source§impl Decompress for PackedStoredNibbles
impl Decompress for PackedStoredNibbles
Source§fn decompress(value: &[u8]) -> Result<PackedStoredNibbles, DecompressError>
fn decompress(value: &[u8]) -> Result<PackedStoredNibbles, DecompressError>
Decompresses data coming from the database.
§fn decompress_owned(value: Vec<u8>) -> Result<Self, DecompressError>
fn decompress_owned(value: Vec<u8>) -> Result<Self, DecompressError>
Decompresses owned data coming from the database.
Source§impl Default for PackedStoredNibbles
impl Default for PackedStoredNibbles
Source§impl<'de> Deserialize<'de> for PackedStoredNibbles
Available on crate features serde only.
impl<'de> Deserialize<'de> for PackedStoredNibbles
Available on crate features
serde only.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
impl Eq for PackedStoredNibbles
Source§impl From<Nibbles> for PackedStoredNibbles
impl From<Nibbles> for PackedStoredNibbles
Source§impl From<PackedStoredNibbles> for StoredNibbles
impl From<PackedStoredNibbles> for StoredNibbles
Source§fn from(value: PackedStoredNibbles) -> Self
fn from(value: PackedStoredNibbles) -> Self
Converts to this type from the input type.
Source§impl From<StoredNibbles> for PackedStoredNibbles
impl From<StoredNibbles> for PackedStoredNibbles
Source§fn from(value: StoredNibbles) -> Self
fn from(value: StoredNibbles) -> Self
Converts to this type from the input type.
Source§impl Hash for PackedStoredNibbles
impl Hash for PackedStoredNibbles
Source§impl<__IdxT> Index<__IdxT> for PackedStoredNibbles
impl<__IdxT> Index<__IdxT> for PackedStoredNibbles
Source§impl Ord for PackedStoredNibbles
impl Ord for PackedStoredNibbles
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
Source§impl PartialEq for PackedStoredNibbles
impl PartialEq for PackedStoredNibbles
Source§impl PartialOrd for PackedStoredNibbles
impl PartialOrd for PackedStoredNibbles
Source§impl Serialize for PackedStoredNibbles
Available on crate features serde only.
impl Serialize for PackedStoredNibbles
Available on crate features
serde only.impl StructuralPartialEq for PackedStoredNibbles
Auto Trait Implementations§
impl Freeze for PackedStoredNibbles
impl RefUnwindSafe for PackedStoredNibbles
impl Send for PackedStoredNibbles
impl Sync for PackedStoredNibbles
impl Unpin for PackedStoredNibbles
impl UnsafeUnpin for PackedStoredNibbles
impl UnwindSafe for PackedStoredNibbles
Blanket Implementations§
impl<A> ArbInterop for A
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§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> 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> ⓘ
Converts
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> ⓘ
Converts
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> MaybeCompact for Twhere
T: Compact,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSerde for Twhere
T: Serialize + for<'de> Deserialize<'de>,
§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> ⓘ
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: 40 bytes