pub struct InitStorageData { /* private fields */ }Expand description
Represents the data required to initialize storage entries when instantiating an AccountComponent from component metadata (either provided directly or extracted from a package).
An InitStorageData can be created from a TOML string when the std feature flag is set.
Implementations§
Source§impl InitStorageData
impl InitStorageData
Sourcepub fn new(
value_entries: BTreeMap<StorageValueName, WordValue>,
map_entries: BTreeMap<StorageSlotName, Vec<(WordValue, WordValue)>>,
) -> Result<Self, InitStorageDataError>
pub fn new( value_entries: BTreeMap<StorageValueName, WordValue>, map_entries: BTreeMap<StorageSlotName, Vec<(WordValue, WordValue)>>, ) -> Result<Self, InitStorageDataError>
Creates a new instance of InitStorageData, validating that there are no conflicting entries.
§Errors
Returns an error if:
- A slot has both value entries and map entries
- A slot has both a slot-level value and field values
Sourcepub fn values(&self) -> &BTreeMap<StorageValueName, WordValue>
pub fn values(&self) -> &BTreeMap<StorageValueName, WordValue>
Returns a reference to the underlying init values map.
Sourcepub fn maps(&self) -> &BTreeMap<StorageSlotName, Vec<(WordValue, WordValue)>>
pub fn maps(&self) -> &BTreeMap<StorageSlotName, Vec<(WordValue, WordValue)>>
Returns a reference to the underlying init map entries.
Sourcepub fn value_entry(&self, name: &StorageValueName) -> Option<&WordValue>
pub fn value_entry(&self, name: &StorageValueName) -> Option<&WordValue>
Returns a reference to the stored init value for the given name.
Sourcepub fn slot_value_entry(
&self,
slot_name: &StorageSlotName,
) -> Option<&WordValue>
pub fn slot_value_entry( &self, slot_name: &StorageSlotName, ) -> Option<&WordValue>
Returns a reference to the stored init value for a full slot name.
Sourcepub fn map_entries(
&self,
slot_name: &StorageSlotName,
) -> Option<&Vec<(WordValue, WordValue)>>
pub fn map_entries( &self, slot_name: &StorageSlotName, ) -> Option<&Vec<(WordValue, WordValue)>>
Returns the map entries associated with the given storage map slot name, if any.
Sourcepub fn has_value_entries_for_slot(&self, slot_name: &StorageSlotName) -> bool
pub fn has_value_entries_for_slot(&self, slot_name: &StorageSlotName) -> bool
Returns true if any init value entry targets the given slot name.
Sourcepub fn has_field_entries_for_slot(&self, slot_name: &StorageSlotName) -> bool
pub fn has_field_entries_for_slot(&self, slot_name: &StorageSlotName) -> bool
Returns true if any init value entry targets a field of the given slot name.
Sourcepub fn insert_value(
&mut self,
name: StorageValueName,
value: impl Into<WordValue>,
) -> Result<(), InitStorageDataError>
pub fn insert_value( &mut self, name: StorageValueName, value: impl Into<WordValue>, ) -> Result<(), InitStorageDataError>
Inserts a value entry, returning an error on duplicate or conflicting keys.
The value can be any type that implements Into<WordValue>, e.g.:
Word: a fully-typed word value[Felt; 4]: converted to a WordFelt: converted to[0, 0, 0, felt]Stringor&str: a parseable string valueWordValue: a word value (fully typed, atomic, or elements)
Sourcepub fn set_value(
&mut self,
name: StorageValueName,
value: impl Into<WordValue>,
) -> Result<(), InitStorageDataError>
pub fn set_value( &mut self, name: StorageValueName, value: impl Into<WordValue>, ) -> Result<(), InitStorageDataError>
Sets a value entry, overriding any existing entry for the name.
Returns an error if the StorageValueName has been used for a map slot.
Sourcepub fn insert_map_entry(
&mut self,
slot_name: StorageSlotName,
key: impl Into<WordValue>,
value: impl Into<WordValue>,
) -> Result<(), InitStorageDataError>
pub fn insert_map_entry( &mut self, slot_name: StorageSlotName, key: impl Into<WordValue>, value: impl Into<WordValue>, ) -> Result<(), InitStorageDataError>
Inserts a single map entry, returning an error on duplicate or conflicting keys.
See Self::insert_value for examples of supported types for key and value.
Sourcepub fn set_map_values(
&mut self,
slot_name: StorageSlotName,
entries: Vec<(WordValue, WordValue)>,
) -> Result<(), InitStorageDataError>
pub fn set_map_values( &mut self, slot_name: StorageSlotName, entries: Vec<(WordValue, WordValue)>, ) -> Result<(), InitStorageDataError>
Sets map entries for the slot, replacing any existing entries.
Returns an error if there are conflicting value entries.
Sourcepub fn merge_with(&mut self, other: InitStorageData)
pub fn merge_with(&mut self, other: InitStorageData)
Merges another InitStorageData into this one, overwriting value entries and appending
map entries.
Sourcepub fn merge_from(&mut self, other: InitStorageData)
pub fn merge_from(&mut self, other: InitStorageData)
Merges another InitStorageData into this one, overwriting value entries and appending
map entries.
Source§impl InitStorageData
impl InitStorageData
Sourcepub fn from_toml(toml_str: &str) -> Result<Self, InitStorageDataError>
pub fn from_toml(toml_str: &str) -> Result<Self, InitStorageDataError>
Creates an instance of InitStorageData from a TOML string.
§Supported formats
# Value entry (string)
"slot::name" = "0x1234"
# Value entry (4-element word)
"slot::name" = ["0", "0", "0", "100"]
# Nested table (flattened to slot::name.field)
["slot::name"]
field = "value"
# Map entries
"slot::map" = [
{ key = "0x01", value = "0x10" },
]Trait Implementations§
Source§impl Clone for InitStorageData
impl Clone for InitStorageData
Source§fn clone(&self) -> InitStorageData
fn clone(&self) -> InitStorageData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InitStorageData
impl Debug for InitStorageData
Source§impl Default for InitStorageData
impl Default for InitStorageData
Source§fn default() -> InitStorageData
fn default() -> InitStorageData
Auto Trait Implementations§
impl Freeze for InitStorageData
impl RefUnwindSafe for InitStorageData
impl Send for InitStorageData
impl Sync for InitStorageData
impl Unpin for InitStorageData
impl UnwindSafe for InitStorageData
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,
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more