|
use core::fmt::Debug;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Error, Debug)]
|
|
pub enum ProofVerifyError {
|
|
#[error("Proof verification failed")]
|
|
InternalError,
|
|
#[error("Compressed group element failed to decompress: {0:?}")]
|
|
DecompressionError(Vec<u8>),
|
|
}
|
|
|
|
impl Default for ProofVerifyError {
|
|
fn default() -> Self {
|
|
ProofVerifyError::InternalError
|
|
}
|
|
}
|
|
|
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
pub enum R1CSError {
|
|
/// returned if the number of constraints is not a power of 2
|
|
NonPowerOfTwoCons,
|
|
/// returned if the number of variables is not a power of 2
|
|
NonPowerOfTwoVars,
|
|
/// returned if a wrong number of inputs in an assignment are supplied
|
|
InvalidNumberOfInputs,
|
|
/// returned if a wrong number of variables in an assignment are supplied
|
|
InvalidNumberOfVars,
|
|
/// returned if a [u8;32] does not parse into a valid Scalar in the field of ristretto255
|
|
InvalidScalar,
|
|
/// returned if the supplied row or col in (row,col,val) tuple is out of range
|
|
InvalidIndex,
|
|
}
|