use std::fmt;
#[derive(Debug, Clone)]
pub enum Error {
InvalidProof,
InvalidChallenge,
InvalidCommitment,
InvalidResponse,
SerializationError(String),
InvalidPoint,
InvalidScalar,
TranscriptError(String),
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::InvalidProof => write!(f, "Invalid proof"),
Error::InvalidChallenge => write!(f, "Invalid challenge"),
Error::InvalidCommitment => write!(f, "Invalid commitment"),
Error::InvalidResponse => write!(f, "Invalid response"),
Error::SerializationError(msg) => write!(f, "Serialization error: {msg}"),
Error::InvalidPoint => write!(f, "Invalid point"),
Error::InvalidScalar => write!(f, "Invalid scalar"),
Error::TranscriptError(msg) => write!(f, "Transcript error: {msg}"),
}
}
}
impl std::error::Error for Error {}
pub type Result<T> = std::result::Result<T, Error>;