use core::fmt;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[non_exhaustive]
pub enum Error {
Params(&'static str),
Shape,
Merkle,
Fold,
Input(&'static str),
Randomness,
Check(&'static str),
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::Params(m) => write!(f, "invalid parameters: {m}"),
Error::Shape => f.write_str("malformed proof: wrong shape"),
Error::Merkle => f.write_str("invalid Merkle opening"),
Error::Fold => f.write_str("folding test failed"),
Error::Input(m) => write!(f, "invalid prover input: {m}"),
Error::Randomness => f.write_str("the system random number generator failed"),
Error::Check(m) => write!(f, "check failed: {m}"),
}
}
}
impl std::error::Error for Error {}