1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//! This module defines errors returned by the library.
use core::fmt::Debug;

/// Errors returned by Nova
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum NovaError {
  /// returned if the supplied row or col in (row,col,val) tuple is out of range
  InvalidIndex,
  /// returned if the supplied input is not even-sized
  OddInputLength,
  /// returned if the supplied input is not of the right length
  InvalidInputLength,
  /// returned if the supplied witness is not of the right length
  InvalidWitnessLength,
  /// returned if the supplied witness is not a satisfying witness to a given shape and instance
  UnSat,
  /// returned when the supplied compressed commitment cannot be decompressed
  DecompressionError,
  /// returned if proof verification fails
  ProofVerifyError,
  /// returned if the provided number of steps is zero
  InvalidNumSteps,
  /// returned when an invalid inner product argument is provided
  InvalidIPA,
  /// returned when an invalid sum-check proof is provided
  InvalidSumcheckProof,
}