pub enum Hint {
Show 32 variants AllocSegment { dst: CellRef, }, TestLessThan { lhs: ResOperand, rhs: ResOperand, dst: CellRef, }, TestLessThanOrEqual { lhs: ResOperand, rhs: ResOperand, dst: CellRef, }, DivMod { lhs: ResOperand, rhs: ResOperand, quotient: CellRef, remainder: CellRef, }, LinearSplit { value: ResOperand, scalar: ResOperand, max_x: ResOperand, x: CellRef, y: CellRef, }, EnterScope, ExitScope, AllocDictFeltTo { dict_manager_ptr: ResOperand, }, DictFeltToRead { dict_ptr: ResOperand, key: ResOperand, value_dst: CellRef, }, DictFeltToWrite { dict_ptr: ResOperand, key: ResOperand, value: ResOperand, prev_value_dst: CellRef, }, GetDictIndex { dict_manager_ptr: ResOperand, dict_end_ptr: ResOperand, dict_index: CellRef, }, EnterDictSquashScope { dict_end_ptr: ResOperand, }, SetDictTrackerEnd { squashed_dict_start: ResOperand, squashed_dict_end: ResOperand, }, InitSquashData { dict_accesses: ResOperand, ptr_diff: ResOperand, n_accesses: ResOperand, big_keys: CellRef, first_key: CellRef, }, GetCurrentAccessIndex { range_check_ptr: ResOperand, }, ShouldSkipSquashLoop { should_skip_loop: CellRef, }, GetCurrentAccessDelta { index_delta_minus1: CellRef, }, ShouldContinueSquashLoop { should_continue: CellRef, }, AssertCurrentAccessIndicesIsEmpty, AssertAllAccessesUsed { n_used_accesses: CellRef, }, AssertAllKeysUsed, GetNextDictKey { next_key: CellRef, }, AssertLtAssertValidInput { a: ResOperand, b: ResOperand, }, AssertLeFindSmallArcs { range_check_ptr: ResOperand, a: ResOperand, b: ResOperand, }, AssertLeIsFirstArcExcluded { skip_exclude_a_flag: CellRef, }, AssertLeIsSecondArcExcluded { skip_exclude_b_minus_a: CellRef, }, AssertLeAssertThirdArcExcluded, RandomEcPoint { x: CellRef, y: CellRef, }, FieldSqrt { val: ResOperand, sqrt: CellRef, }, SystemCall { system: ResOperand, }, DebugPrint { start: ResOperand, end: ResOperand, }, AllocConstantSize { size: ResOperand, dst: CellRef, },
}

Variants§

§

AllocSegment

Fields

§dst: CellRef
§

TestLessThan

Fields

§dst: CellRef
§

TestLessThanOrEqual

Fields

§dst: CellRef
§

DivMod

Fields

§quotient: CellRef
§remainder: CellRef
§

LinearSplit

Fields

§value: ResOperand
§scalar: ResOperand
§max_x: ResOperand

Finds some x and y such that x * scalar + y = value and x <= max_x.

§

EnterScope

§

ExitScope

§

AllocDictFeltTo

Fields

§dict_manager_ptr: ResOperand

Allocates a new dict segment, and write its start address into the dict_infos segment.

§

DictFeltToRead

Fields

§dict_ptr: ResOperand
§value_dst: CellRef

Retrives and writes the value corresponding to the given dict and key from the vm dict_manager.

§

DictFeltToWrite

Fields

§dict_ptr: ResOperand
§value: ResOperand
§prev_value_dst: CellRef

Sets the value correspoinding to the key in the vm dict_manager.

§

GetDictIndex

Fields

§dict_manager_ptr: ResOperand
§dict_end_ptr: ResOperand
§dict_index: CellRef

Retrives the index of the given dict in the dict_infos segment.

§

EnterDictSquashScope

Fields

§dict_end_ptr: ResOperand

Creates a new scope with the variables needed for dict_squash.

§

SetDictTrackerEnd

Fields

§squashed_dict_start: ResOperand
§squashed_dict_end: ResOperand

Sets the end of a finalized dict in the vm tracker of the dict.

§

InitSquashData

Fields

§dict_accesses: ResOperand
§ptr_diff: ResOperand
§n_accesses: ResOperand
§big_keys: CellRef
§first_key: CellRef

Initialized the lists of accesses of each key of a dict as a preparation of squash_dict.

§

GetCurrentAccessIndex

Fields

§range_check_ptr: ResOperand

Retrives the current index of a dict access to process.

§

ShouldSkipSquashLoop

Fields

§should_skip_loop: CellRef

Writes if the squash_dict loop should be skipped.

§

GetCurrentAccessDelta

Fields

§index_delta_minus1: CellRef

Writes the delta from the current access index to the next one.

§

ShouldContinueSquashLoop

Fields

§should_continue: CellRef

Writes if the squash_dict loop should be continued.

§

AssertCurrentAccessIndicesIsEmpty

Asserts that the current access indices list is empty (after the loop).

§

AssertAllAccessesUsed

Fields

§n_used_accesses: CellRef

Asserts that the number of used accesses is equal to the length of the original accesses list.

§

AssertAllKeysUsed

Asserts that the keys list is empty.

§

GetNextDictKey

Fields

§next_key: CellRef

Writes the next dict key to process.

§

AssertLtAssertValidInput

Asserts that the input represents integers and that a<b.

§

AssertLeFindSmallArcs

Fields

§range_check_ptr: ResOperand

Finds the two small arcs from within [(0,a),(a,b),(b,PRIME)] and writes it to the range_check segment.

§

AssertLeIsFirstArcExcluded

Fields

§skip_exclude_a_flag: CellRef

Writes if the arc (0,a) was excluded.

§

AssertLeIsSecondArcExcluded

Fields

§skip_exclude_b_minus_a: CellRef

Writes if the arc (a,b) was excluded.

§

AssertLeAssertThirdArcExcluded

Asserts that the arc (b, PRIME) was excluded.

§

RandomEcPoint

Fields

Samples a random point on the EC.

§

FieldSqrt

Fields

§sqrt: CellRef

Computes the square root of val, if val is a quadratic residue, and of 3 * val otherwise.

Since 3 is not a quadratic residue, exactly one of val and 3 * val is a quadratic residue (unless val is 0). This allows proving that val is not a quadratic residue.

§

SystemCall

Fields

§system: ResOperand

Represents a hint that triggers a system call.

§

DebugPrint

Fields

§start: ResOperand

Prints the values from start to end. Both must be pointers.

§

AllocConstantSize

Fields

§dst: CellRef

Returns an address with size free locations afterwards.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.