pub enum ACVMStatus<F> {
Solved,
InProgress,
Failure(OpcodeResolutionError<F>),
RequiresForeignCall(ForeignCallWaitInfo<F>),
RequiresAcirCall(AcirCallWaitInfo<F>),
}Variants§
Solved
All witnesses have been computed and all opcodes have been successfully resolved. Execution is complete.
InProgress
The ACVM is processing the circuit, i.e solving the opcodes. This status is used to resume execution after it has been paused.
Failure(OpcodeResolutionError<F>)
The ACVM has encountered an irrecoverable error while executing the circuit and can not progress. Most commonly this will be due to an unsatisfied constraint due to invalid inputs to the circuit.
RequiresForeignCall(ForeignCallWaitInfo<F>)
The ACVM has encountered a request for a Brillig [foreign call][brillig_vm::brillig::Opcode::ForeignCall]
to retrieve information from outside of the ACVM. The result of the foreign call must be passed back
to the ACVM using ACVM::resolve_pending_foreign_call.
Once this is done, the ACVM can be restarted to solve the remaining opcodes.
RequiresAcirCall(AcirCallWaitInfo<F>)
The ACVM has encountered a request for an ACIR [call][acir::circuit::Opcode] to execute a separate ACVM instance. The result of the ACIR call must be passed back to the ACVM.
Once this is done, the ACVM can be restarted to solve the remaining opcodes.
Trait Implementations§
Source§impl<F: Clone> Clone for ACVMStatus<F>
impl<F: Clone> Clone for ACVMStatus<F>
Source§fn clone(&self) -> ACVMStatus<F>
fn clone(&self) -> ACVMStatus<F>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<F: Debug> Debug for ACVMStatus<F>
impl<F: Debug> Debug for ACVMStatus<F>
Source§impl<F> Display for ACVMStatus<F>
impl<F> Display for ACVMStatus<F>
Source§impl<F: PartialEq> PartialEq for ACVMStatus<F>
impl<F: PartialEq> PartialEq for ACVMStatus<F>
impl<F> StructuralPartialEq for ACVMStatus<F>
Auto Trait Implementations§
impl<F> Freeze for ACVMStatus<F>where
F: Freeze,
impl<F> RefUnwindSafe for ACVMStatus<F>where
F: RefUnwindSafe,
impl<F> Send for ACVMStatus<F>where
F: Send,
impl<F> Sync for ACVMStatus<F>where
F: Sync,
impl<F> Unpin for ACVMStatus<F>where
F: Unpin,
impl<F> UnwindSafe for ACVMStatus<F>where
F: UnwindSafe + RefUnwindSafe,
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more