pub enum ProcessState<'a> {
Slow(SlowProcessState<'a>),
Fast(FastProcessState<'a>),
Noop(()),
}Variants§
Slow(SlowProcessState<'a>)
Fast(FastProcessState<'a>)
Noop(())
A process state that does nothing. Calling any of its methods results in a panic. It is
expected to be used in conjunction with the NoopHost.
Implementations§
Source§impl<'a> ProcessState<'a>
impl<'a> ProcessState<'a>
Sourcepub fn advice_provider(&self) -> &AdviceProvider
pub fn advice_provider(&self) -> &AdviceProvider
Returns a reference to the advice provider.
Sourcepub fn advice_provider_mut(&mut self) -> &mut AdviceProvider
pub fn advice_provider_mut(&mut self) -> &mut AdviceProvider
Returns a mutable reference to the advice provider.
Sourcepub fn get_stack_item(&self, pos: usize) -> Felt
pub fn get_stack_item(&self, pos: usize) -> Felt
Returns the value located at the specified position on the stack at the current clock cycle.
This method can access elements beyond the top 16 positions by using the overflow table.
Sourcepub fn get_stack_word_be(&self, start_idx: usize) -> Word
pub fn get_stack_word_be(&self, start_idx: usize) -> Word
Returns a word starting at the specified element index on the stack in big-endian (reversed) order.
The word is formed by taking 4 consecutive elements starting from the specified index. For example, start_idx=0 creates a word from stack elements 0-3, start_idx=1 creates a word from elements 1-4, etc.
In big-endian order, stack element N+3 will be at position 0 of the word, N+2 at
position 1, N+1 at position 2, and N at position 3. This matches the behavior of
mem_loadw_be where mem[a+3] ends up on top of the stack.
This method can access elements beyond the top 16 positions by using the overflow table. Creating a word does not change the state of the stack.
Sourcepub fn get_stack_word_le(&self, start_idx: usize) -> Word
pub fn get_stack_word_le(&self, start_idx: usize) -> Word
Returns a word starting at the specified element index on the stack in little-endian (memory) order.
The word is formed by taking 4 consecutive elements starting from the specified index. For example, start_idx=0 creates a word from stack elements 0-3, start_idx=1 creates a word from elements 1-4, etc.
In little-endian order, stack element N will be at position 0 of the word, N+1 at
position 1, N+2 at position 2, and N+3 at position 3. This matches the behavior of
mem_loadw_le where mem[a] ends up on top of the stack.
This method can access elements beyond the top 16 positions by using the overflow table. Creating a word does not change the state of the stack.
Sourcepub fn get_stack_word(&self, start_idx: usize) -> Word
👎Deprecated since 0.19.0: Use get_stack_word_be() or get_stack_word_le() to make endianness explicit
pub fn get_stack_word(&self, start_idx: usize) -> Word
get_stack_word_be() or get_stack_word_le() to make endianness explicitReturns a word starting at the specified element index on the stack.
This is an alias for Self::get_stack_word_be for backward compatibility. For new code,
prefer using the explicit get_stack_word_be() or get_stack_word_le() to make the
ordering expectations clear.
See Self::get_stack_word_be for detailed documentation.
Sourcepub fn get_stack_state(&self) -> Vec<Felt>
pub fn get_stack_state(&self) -> Vec<Felt>
Returns stack state at the current clock cycle. This includes the top 16 items of the stack + overflow entries.
Sourcepub fn get_mem_value(&self, ctx: ContextId, addr: u32) -> Option<Felt>
pub fn get_mem_value(&self, ctx: ContextId, addr: u32) -> Option<Felt>
Returns the element located at the specified context/address, or None if the address hasn’t been accessed previously.
Sourcepub fn get_mem_word(
&self,
ctx: ContextId,
addr: u32,
) -> Result<Option<Word>, MemoryError>
pub fn get_mem_word( &self, ctx: ContextId, addr: u32, ) -> Result<Option<Word>, MemoryError>
Returns the batch of elements starting at the specified context/address.
§Errors
- If the address is not word aligned.
Sourcepub fn get_mem_addr_range(
&self,
start_idx: usize,
end_idx: usize,
) -> Result<Range<u32>, MemoryError>
pub fn get_mem_addr_range( &self, start_idx: usize, end_idx: usize, ) -> Result<Range<u32>, MemoryError>
Reads (start_addr, end_addr) tuple from the specified elements of the operand stack ( without modifying the state of the stack), and verifies that memory range is valid.
Sourcepub fn get_mem_state(&self, ctx: ContextId) -> Vec<(MemoryAddress, Felt)>
pub fn get_mem_state(&self, ctx: ContextId) -> Vec<(MemoryAddress, Felt)>
Returns the entire memory state for the specified execution context at the current clock cycle.
The state is returned as a vector of (address, value) tuples, and includes addresses which have been accessed at least once.
Trait Implementations§
Source§impl<'a> Debug for ProcessState<'a>
impl<'a> Debug for ProcessState<'a>
Auto Trait Implementations§
impl<'a> Freeze for ProcessState<'a>
impl<'a> RefUnwindSafe for ProcessState<'a>
impl<'a> Send for ProcessState<'a>
impl<'a> Sync for ProcessState<'a>
impl<'a> Unpin for ProcessState<'a>
impl<'a> !UnwindSafe for ProcessState<'a>
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> 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