pub struct SlotChanges {
pub slot: Uint<256, 4>,
pub changes: Vec<StorageChange>,
}Expand description
Represents all changes made to a single storage slot across multiple transactions.
Fields§
§slot: Uint<256, 4>The storage slot key being modified.
changes: Vec<StorageChange>A list of write operations to this slot, ordered by transaction index.
Implementations§
Source§impl SlotChanges
impl SlotChanges
Sourcepub const fn new(slot: Uint<256, 4>, changes: Vec<StorageChange>) -> SlotChanges
pub const fn new(slot: Uint<256, 4>, changes: Vec<StorageChange>) -> SlotChanges
Creates a new SlotChanges instance for the given slot key and changes.
Sourcepub fn with_capacity(slot: Uint<256, 4>, capacity: usize) -> SlotChanges
pub fn with_capacity(slot: Uint<256, 4>, capacity: usize) -> SlotChanges
Creates a new SlotChanges with preallocated capacity for the given number of changes.
Sourcepub fn push(&mut self, change: StorageChange)
pub fn push(&mut self, change: StorageChange)
Appends a storage change to the list.
Sourcepub fn sort(&mut self)
pub fn sort(&mut self)
Sorts this slot’s storage changes by block access index in ascending order.
This applies the per-slot ordering required by the “Ordering, Uniqueness and Determinism” section of EIP-7928. It only canonicalizes ordering and does not enforce uniqueness of block access indexes.
Sourcepub const fn with_slot(self, slot: Uint<256, 4>) -> SlotChanges
pub const fn with_slot(self, slot: Uint<256, 4>) -> SlotChanges
Creates a new SlotChanges for the given slot.
Sourcepub fn with_change(self, change: StorageChange) -> SlotChanges
pub fn with_change(self, change: StorageChange) -> SlotChanges
Creates a new SlotChanges with the given change appended.
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for SlotChanges
impl<'arbitrary> Arbitrary<'arbitrary> for SlotChanges
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<SlotChanges, Error>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<SlotChanges, Error>
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(
u: Unstructured<'arbitrary>,
) -> Result<SlotChanges, Error>
fn arbitrary_take_rest( u: Unstructured<'arbitrary>, ) -> Result<SlotChanges, Error>
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured this type
needs to construct itself. Read moreSource§impl Clone for SlotChanges
impl Clone for SlotChanges
Source§fn clone(&self) -> SlotChanges
fn clone(&self) -> SlotChanges
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SlotChanges
impl Debug for SlotChanges
Source§impl Decodable for SlotChanges
impl Decodable for SlotChanges
Source§impl Default for SlotChanges
impl Default for SlotChanges
Source§fn default() -> SlotChanges
fn default() -> SlotChanges
Source§impl<'de> Deserialize<'de> for SlotChanges
impl<'de> Deserialize<'de> for SlotChanges
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SlotChanges, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SlotChanges, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Encodable for SlotChanges
impl Encodable for SlotChanges
impl Eq for SlotChanges
Source§impl Hash for SlotChanges
impl Hash for SlotChanges
Source§impl PartialEq for SlotChanges
impl PartialEq for SlotChanges
Source§fn eq(&self, other: &SlotChanges) -> bool
fn eq(&self, other: &SlotChanges) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SlotChanges
impl Serialize for SlotChanges
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for SlotChanges
Auto Trait Implementations§
impl Freeze for SlotChanges
impl RefUnwindSafe for SlotChanges
impl Send for SlotChanges
impl Sync for SlotChanges
impl Unpin for SlotChanges
impl UnsafeUnpin for SlotChanges
impl UnwindSafe for SlotChanges
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 moreLayout§
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: 56 bytes