pub struct ExecutionOptions { /* private fields */ }Expand description
A set of parameters specifying execution parameters of the VM.
max_cyclesspecifies the maximum number of cycles a program is allowed to execute.expected_cyclesspecifies the number of cycles a program is expected to execute.
Implementations§
Source§impl ExecutionOptions
impl ExecutionOptions
Sourcepub const MAX_CYCLES: u32
pub const MAX_CYCLES: u32
The maximum number of VM cycles a program is allowed to take.
Sourcepub const DEFAULT_CORE_TRACE_FRAGMENT_SIZE: usize = 4096
pub const DEFAULT_CORE_TRACE_FRAGMENT_SIZE: usize = 4096
Default fragment size for core trace generation.
Sourcepub const DEFAULT_MAX_ADV_MAP_VALUE_SIZE: usize
pub const DEFAULT_MAX_ADV_MAP_VALUE_SIZE: usize
Default maximum number of field elements in a single advice map value inserted via execution-time advice map mutations. Set to 2^17 (~1 MB given 8-byte field elements).
Sourcepub const DEFAULT_MAX_ADV_MAP_ELEMENTS: usize
pub const DEFAULT_MAX_ADV_MAP_ELEMENTS: usize
Default maximum total number of field elements in live advice map keys and values.
Set to 2^20 so the default allows multiple maximum-sized entries while still providing a finite host-memory backstop. Each entry contributes 4 key elements plus its value length.
Sourcepub const DEFAULT_MAX_HASH_LEN_BYTES: usize
pub const DEFAULT_MAX_HASH_LEN_BYTES: usize
Default maximum number of input bytes for a single hash precompile invocation (e.g. keccak256, sha512, etc.). Set to 2^20 (1 MB).
Sourcepub const DEFAULT_MAX_NUM_CONTINUATIONS: usize
pub const DEFAULT_MAX_NUM_CONTINUATIONS: usize
Default maximum number of continuations allowed on the continuation stack. Set to 2^16 (65536).
Sourcepub const DEFAULT_MAX_MERKLE_STORE_NODES: usize
pub const DEFAULT_MAX_MERKLE_STORE_NODES: usize
Default maximum number of internal nodes allowed in the advice provider’s Merkle store.
Set to 2^20 so the default allows large Merkle inputs and repeated updates while still providing a finite host-memory backstop.
Sourcepub const DEFAULT_MAX_PRECOMPILE_REQUESTS: usize
pub const DEFAULT_MAX_PRECOMPILE_REQUESTS: usize
Default maximum number of deferred precompile requests allowed during execution. Set to 2^16 (65536).
Sourcepub const DEFAULT_MAX_PRECOMPILE_REQUEST_CALLDATA_BYTES: usize
pub const DEFAULT_MAX_PRECOMPILE_REQUEST_CALLDATA_BYTES: usize
Default maximum total calldata bytes allowed across deferred precompile requests. Set to 2^28 (256 MB).
Sourcepub const DEFAULT_MAX_STACK_DEPTH: usize = 6615
pub const DEFAULT_MAX_STACK_DEPTH: usize = 6615
Default maximum number of field elements allowed on the operand stack.
This preserves the effective stack depth ceiling imposed by the previous fixed
FastProcessor stack buffer.
Sourcepub const DEFAULT_MAX_MEMORY_ELEMENTS: usize
pub const DEFAULT_MAX_MEMORY_ELEMENTS: usize
Default maximum number of field elements allowed in the processor’s memory.
Memory is element-addressable, so this bounds the total number of elements live across all contexts. Internally memory is stored at word granularity (4 elements per word), so the effective limit is rounded up to a whole number of words. Set to 2^28, which lets programs use a large amount of memory while still providing a finite host-memory backstop against unbounded growth from writes to arbitrarily many unique addresses.
Sourcepub fn new(
max_cycles: Option<u32>,
expected_cycles: u32,
core_trace_fragment_size: usize,
) -> Result<Self, ExecutionOptionsError>
pub fn new( max_cycles: Option<u32>, expected_cycles: u32, core_trace_fragment_size: usize, ) -> Result<Self, ExecutionOptionsError>
Creates a new instance of ExecutionOptions from the specified parameters.
If the max_cycles is None the maximum number of cycles will be set to 2^29.
§Errors
Returns an error if:
max_cyclesis outside the valid range- after rounding up to the next power of two,
expected_cyclesexceedsmax_cycles core_trace_fragment_sizeis zero
Sourcepub fn with_core_trace_fragment_size(
self,
size: usize,
) -> Result<Self, ExecutionOptionsError>
pub fn with_core_trace_fragment_size( self, size: usize, ) -> Result<Self, ExecutionOptionsError>
Sets the fragment size for core trace generation.
Returns an error if the size is zero.
Sourcepub fn max_cycles(&self) -> u32
pub fn max_cycles(&self) -> u32
Returns maximum number of cycles a program is allowed to execute for.
Sourcepub fn expected_cycles(&self) -> u32
pub fn expected_cycles(&self) -> u32
Returns the number of cycles a program is expected to take.
This will serve as a hint to the VM for how much memory to allocate for a program’s execution trace and may result in performance improvements when the number of expected cycles is equal to the number of actual cycles.
Sourcepub fn core_trace_fragment_size(&self) -> usize
pub fn core_trace_fragment_size(&self) -> usize
Returns the fragment size for core trace generation.
Sourcepub fn max_adv_map_value_size(&self) -> usize
pub fn max_adv_map_value_size(&self) -> usize
Returns the maximum number of field elements allowed in a single live advice map value.
Sourcepub fn max_adv_map_elements(&self) -> usize
pub fn max_adv_map_elements(&self) -> usize
Returns the maximum total number of field elements allowed in live advice map keys and values.
Sourcepub fn max_hash_len_bytes(&self) -> usize
pub fn max_hash_len_bytes(&self) -> usize
Returns the maximum number of input bytes allowed for a single hash precompile invocation.
Sourcepub fn with_max_adv_map_value_size(self, size: usize) -> Self
pub fn with_max_adv_map_value_size(self, size: usize) -> Self
Sets the maximum number of field elements allowed in a single live advice map value.
Sourcepub fn with_max_adv_map_elements(self, size: usize) -> Self
pub fn with_max_adv_map_elements(self, size: usize) -> Self
Sets the maximum total number of field elements allowed in live advice map keys and values.
Sourcepub fn with_max_hash_len_bytes(self, size: usize) -> Self
pub fn with_max_hash_len_bytes(self, size: usize) -> Self
Sets the maximum number of input bytes allowed for a single hash precompile invocation.
Sourcepub fn max_num_continuations(&self) -> usize
pub fn max_num_continuations(&self) -> usize
Returns the maximum number of continuations allowed on the continuation stack.
Sourcepub fn max_merkle_store_nodes(&self) -> usize
pub fn max_merkle_store_nodes(&self) -> usize
Returns the maximum number of internal nodes allowed in the advice provider’s Merkle store.
Sourcepub fn max_precompile_requests(&self) -> usize
pub fn max_precompile_requests(&self) -> usize
Returns the maximum number of deferred precompile requests allowed during execution.
Sourcepub fn max_precompile_request_calldata_bytes(&self) -> usize
pub fn max_precompile_request_calldata_bytes(&self) -> usize
Returns the maximum total calldata bytes allowed across deferred precompile requests.
Sourcepub fn max_stack_depth(&self) -> usize
pub fn max_stack_depth(&self) -> usize
Returns the maximum number of field elements allowed on the operand stack across the active execution context and all suspended contexts.
Sourcepub fn max_memory_elements(&self) -> usize
pub fn max_memory_elements(&self) -> usize
Returns the configured maximum number of field elements allowed in the processor’s memory.
This is the raw value as set via Self::with_max_memory_elements; the effective cap is
rounded up to a whole number of words (a multiple of 4) when memory is initialized.
Sourcepub fn with_max_num_continuations(self, max_num_continuations: usize) -> Self
pub fn with_max_num_continuations(self, max_num_continuations: usize) -> Self
Sets the maximum number of continuations allowed on the continuation stack.
Sourcepub fn with_max_merkle_store_nodes(self, max_merkle_store_nodes: usize) -> Self
pub fn with_max_merkle_store_nodes(self, max_merkle_store_nodes: usize) -> Self
Sets the maximum number of internal nodes allowed in the advice provider’s Merkle store.
Sourcepub fn with_max_precompile_requests(
self,
max_precompile_requests: usize,
) -> Self
pub fn with_max_precompile_requests( self, max_precompile_requests: usize, ) -> Self
Sets the maximum number of deferred precompile requests allowed during execution.
Sourcepub fn with_max_precompile_request_calldata_bytes(
self,
max_precompile_request_calldata_bytes: usize,
) -> Self
pub fn with_max_precompile_request_calldata_bytes( self, max_precompile_request_calldata_bytes: usize, ) -> Self
Sets the maximum total calldata bytes allowed across deferred precompile requests.
Sourcepub fn with_max_stack_depth(
self,
max_stack_depth: usize,
) -> Result<Self, ExecutionOptionsError>
pub fn with_max_stack_depth( self, max_stack_depth: usize, ) -> Result<Self, ExecutionOptionsError>
Sets the maximum number of field elements allowed on the operand stack across the active execution context and all suspended contexts.
Sourcepub fn with_max_memory_elements(self, max_memory_elements: usize) -> Self
pub fn with_max_memory_elements(self, max_memory_elements: usize) -> Self
Sets the maximum number of field elements allowed in the processor’s memory.
Trait Implementations§
Source§impl Clone for ExecutionOptions
impl Clone for ExecutionOptions
Source§fn clone(&self) -> ExecutionOptions
fn clone(&self) -> ExecutionOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ExecutionOptions
Source§impl Debug for ExecutionOptions
impl Debug for ExecutionOptions
Source§impl Default for ExecutionOptions
impl Default for ExecutionOptions
impl Eq for ExecutionOptions
Source§impl PartialEq for ExecutionOptions
impl PartialEq for ExecutionOptions
Source§fn eq(&self, other: &ExecutionOptions) -> bool
fn eq(&self, other: &ExecutionOptions) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ExecutionOptions
Auto Trait Implementations§
impl Freeze for ExecutionOptions
impl RefUnwindSafe for ExecutionOptions
impl Send for ExecutionOptions
impl Sync for ExecutionOptions
impl Unpin for ExecutionOptions
impl UnsafeUnpin for ExecutionOptions
impl UnwindSafe for ExecutionOptions
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
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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