|
|
@ -1,31 +1,44 @@ |
|
|
|
//! This module defines errors returned by the library.
|
|
|
|
use core::fmt::Debug;
|
|
|
|
use thiserror::Error;
|
|
|
|
|
|
|
|
/// Errors returned by Nova
|
|
|
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
|
|
#[derive(Clone, Debug, Eq, PartialEq, Error)]
|
|
|
|
pub enum NovaError {
|
|
|
|
/// returned if the supplied row or col in (row,col,val) tuple is out of range
|
|
|
|
#[error("InvalidIndex")]
|
|
|
|
InvalidIndex,
|
|
|
|
/// returned if the supplied input is not even-sized
|
|
|
|
#[error("OddInputLength")]
|
|
|
|
OddInputLength,
|
|
|
|
/// returned if the supplied input is not of the right length
|
|
|
|
#[error("InvalidInputLength")]
|
|
|
|
InvalidInputLength,
|
|
|
|
/// returned if the supplied witness is not of the right length
|
|
|
|
#[error("InvalidWitnessLength")]
|
|
|
|
InvalidWitnessLength,
|
|
|
|
/// returned if the supplied witness is not a satisfying witness to a given shape and instance
|
|
|
|
#[error("UnSat")]
|
|
|
|
UnSat,
|
|
|
|
/// returned when the supplied compressed commitment cannot be decompressed
|
|
|
|
#[error("DecompressionError")]
|
|
|
|
DecompressionError,
|
|
|
|
/// returned if proof verification fails
|
|
|
|
#[error("ProofVerifyError")]
|
|
|
|
ProofVerifyError,
|
|
|
|
/// returned if the provided number of steps is zero
|
|
|
|
#[error("InvalidNumSteps")]
|
|
|
|
InvalidNumSteps,
|
|
|
|
/// returned when an invalid inner product argument is provided
|
|
|
|
#[error("InvalidIPA")]
|
|
|
|
InvalidIPA,
|
|
|
|
/// returned when an invalid sum-check proof is provided
|
|
|
|
#[error("InvalidSumcheckProof")]
|
|
|
|
InvalidSumcheckProof,
|
|
|
|
/// returned when the initial input to an incremental computation differs from a previously declared arity
|
|
|
|
#[error("InvalidInitialInputLength")]
|
|
|
|
InvalidInitialInputLength,
|
|
|
|
/// returned when the step execution produces an output whose length differs from a previously declared arity
|
|
|
|
#[error("InvalidStepOutputLength")]
|
|
|
|
InvalidStepOutputLength,
|
|
|
|
}
|