Struct miden_processor::RecAdviceProvider
source · pub struct RecAdviceProvider { /* private fields */ }
Expand description
An in-memory [AdviceProvider]
implementation with support for data access recording.
The recorder can be converted into a proof which can be used to provide the non-deterministic inputs for program execution.
Implementations§
source§impl RecAdviceProvider
impl RecAdviceProvider
sourcepub fn into_proof(self) -> AdviceInputs
pub fn into_proof(self) -> AdviceInputs
Consumes the advice provider and returns a AdviceInputs instance which can be used to re-execute the program.
The returned AdviceInputs instance will contain only the non-deterministic inputs which were requested during program execution.
Trait Implementations§
source§impl AdviceProvider for RecAdviceProvider
impl AdviceProvider for RecAdviceProvider
Pass-through implementations of AdviceProvider methods.
TODO: potentially do this via a macro.
source§fn pop_stack(&mut self) -> Result<Felt, ExecutionError>
fn pop_stack(&mut self) -> Result<Felt, ExecutionError>
Pops an element from the advice stack and returns it. Read more
source§fn pop_stack_word(&mut self) -> Result<Word, ExecutionError>
fn pop_stack_word(&mut self) -> Result<Word, ExecutionError>
Pops a word (4 elements) from the advice stack and returns it. Read more
source§fn pop_stack_dword(&mut self) -> Result<[Word; 2], ExecutionError>
fn pop_stack_dword(&mut self) -> Result<[Word; 2], ExecutionError>
Pops a double word (8 elements) from the advice stack and returns them. Read more
source§fn push_stack(&mut self, source: AdviceSource) -> Result<(), ExecutionError>
fn push_stack(&mut self, source: AdviceSource) -> Result<(), ExecutionError>
Pushes the value(s) specified by the source onto the advice stack. Read more
source§fn insert_into_map(
&mut self,
key: Word,
values: Vec<Felt>
) -> Result<(), ExecutionError>
fn insert_into_map( &mut self, key: Word, values: Vec<Felt> ) -> Result<(), ExecutionError>
Inserts the provided value into the advice map under the specified key. Read more
source§fn get_tree_node(
&self,
root: Word,
depth: &Felt,
index: &Felt
) -> Result<Word, ExecutionError>
fn get_tree_node( &self, root: Word, depth: &Felt, index: &Felt ) -> Result<Word, ExecutionError>
Returns a node at the specified depth and index in a Merkle tree with the given root. Read more
source§fn get_merkle_path(
&self,
root: Word,
depth: &Felt,
index: &Felt
) -> Result<MerklePath, ExecutionError>
fn get_merkle_path( &self, root: Word, depth: &Felt, index: &Felt ) -> Result<MerklePath, ExecutionError>
Returns a path to a node at the specified depth and index in a Merkle tree with the
specified root. Read more
source§fn get_leaf_depth(
&self,
root: Word,
tree_depth: &Felt,
index: &Felt
) -> Result<u8, ExecutionError>
fn get_leaf_depth( &self, root: Word, tree_depth: &Felt, index: &Felt ) -> Result<u8, ExecutionError>
Reconstructs a path from the root until a leaf or empty node and returns its depth. Read more
source§fn update_merkle_node(
&mut self,
root: Word,
depth: &Felt,
index: &Felt,
value: Word
) -> Result<MerklePath, ExecutionError>
fn update_merkle_node( &mut self, root: Word, depth: &Felt, index: &Felt, value: Word ) -> Result<MerklePath, ExecutionError>
Updates a node at the specified depth and index in a Merkle tree with the specified root;
returns the Merkle path from the updated node to the new root. Read more
source§fn merge_roots(&mut self, lhs: Word, rhs: Word) -> Result<Word, ExecutionError>
fn merge_roots(&mut self, lhs: Word, rhs: Word) -> Result<Word, ExecutionError>
Creates a new Merkle tree in the advice provider by combining Merkle trees with the
specified roots. The root of the new tree is defined as
hash(left_root, right_root)
. Read moresource§fn advance_clock(&mut self)
fn advance_clock(&mut self)
Increments the clock cycle. Read more
source§impl Clone for RecAdviceProvider
impl Clone for RecAdviceProvider
source§fn clone(&self) -> RecAdviceProvider
fn clone(&self) -> RecAdviceProvider
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for RecAdviceProvider
impl Debug for RecAdviceProvider
source§impl Default for RecAdviceProvider
impl Default for RecAdviceProvider
source§fn default() -> RecAdviceProvider
fn default() -> RecAdviceProvider
Returns the “default value” for a type. Read more
source§impl From<AdviceInputs> for RecAdviceProvider
impl From<AdviceInputs> for RecAdviceProvider
source§fn from(inputs: AdviceInputs) -> Self
fn from(inputs: AdviceInputs) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl !RefUnwindSafe for RecAdviceProvider
impl Send for RecAdviceProvider
impl !Sync for RecAdviceProvider
impl Unpin for RecAdviceProvider
impl UnwindSafe for RecAdviceProvider
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
Mutably borrows from an owned value. Read more