1use std::fmt;
2
3#[derive(Debug, Clone)]
4pub enum Error {
5 InvalidProof,
6 InvalidChallenge,
7 InvalidCommitment,
8 InvalidResponse,
9 SerializationError(String),
10 InvalidPoint,
11 InvalidScalar,
12 TranscriptError(String),
13}
14
15impl fmt::Display for Error {
16 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17 match self {
18 Error::InvalidProof => write!(f, "Invalid proof"),
19 Error::InvalidChallenge => write!(f, "Invalid challenge"),
20 Error::InvalidCommitment => write!(f, "Invalid commitment"),
21 Error::InvalidResponse => write!(f, "Invalid response"),
22 Error::SerializationError(msg) => write!(f, "Serialization error: {msg}"),
23 Error::InvalidPoint => write!(f, "Invalid point"),
24 Error::InvalidScalar => write!(f, "Invalid scalar"),
25 Error::TranscriptError(msg) => write!(f, "Transcript error: {msg}"),
26 }
27 }
28}
29
30impl std::error::Error for Error {}
31
32pub type Result<T> = std::result::Result<T, Error>;